MFC_NOTE
demon3k
这个作者很懒,什么都没留下…
展开
-
MFC线程基本
线程的创建很简单,只要在类当中新建一个函数(非成员函数),然后在事件中触发就可以了,如:UINT MessageThread(LPVOID pParam)//不能用成员函数{ char* pMessage=(char*)pParam; CWnd* pMainWnd=AfxGetMainWnd(); ::MessageBox(pMainWnd->m_hWnd,pMessage,"Th原创 2012-03-24 16:24:56 · 487 阅读 · 0 评论 -
使用具有WIN7/XP风格的控件风格
正常建立项目,也可以在VS2010当中选择WIN7的风格先(不过这个没有效果).建立一个文件,内容为:<assemblyIdentityversion="1.0.0.0"processorArchitecture="X86"name="XP style manifest"type="Win32"/><assemblyIdentitytype="Win32"nam翻译 2012-04-08 22:34:57 · 2908 阅读 · 1 评论 -
MFC文件普通读写
新建一个文件读写对象 CFile file(pFileName,//定义一个文件名的数据指针 CFile::modeCreate|//打开模式 CFile::modeWrite);读入数据 CFile file(pFileName, CFile::modeRead); char pFileData[6]; //file.Seek(sizeof(cha原创 2012-03-14 20:30:31 · 569 阅读 · 0 评论 -
MFC对象序列化
MFC应用程序在执行保存(OnFileSave())或打开(OnFileOpen())命令的时候,会在这个函数当中调用文档对象的序列化函数Serialize(),这是一个从CObject当中继承下来的方法,要在Doc当中声明virtual void Serialize(CArchive& ar);实现这个方法时,可以用">"作输入和输出的符号,如void CFileDoc:原创 2012-03-14 21:45:38 · 707 阅读 · 0 评论 -
CArchive类读写
CFile* pFileName=new CFile("myfile.txt", CFile::modeCreate| CFile::modeWrite ); CArchive SaveArchive(pFileName, CArchive::store| CArchive::bNoFlushOnDelete);//当删除指针时不强制刷新缓冲 SaveAr原创 2012-03-14 21:33:08 · 396 阅读 · 0 评论 -
MFC更新窗口ICON
在MainFrame的头文件当中添加一个消息事件:afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);在MainFrame当中添加消息ON_WM_ONCREATE()然后重载CFrameWnd的OnCreate方法:int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)原创 2012-03-14 19:32:19 · 588 阅读 · 0 评论 -
动态链接库生成及调用
一.生成首先使用VS生成一个DLL的应用程序,如图:方法一:添加一个CPP的文件,作为例子,使用简单点的函数:#include "stdafx.h"#include using namespace std;int Add(int p1,int p2){ return p1+p2;}再新建一个项,类型选择DEF的:;导出的库名LIBRARY原创 2012-03-25 14:16:46 · 455 阅读 · 0 评论 -
MFC连接MYSQL
先安装MYSQL 的ODBC驱动,然后在系统的数据源当中添加好新的DSN然后就可以在代码当中连接了: try{ CDatabase db; if(db.Open(NULL,FALSE,FALSE,"ODBC;DSN=mysqlDatabase;UID=root;PWD=********")) { MessageBox("Connection OK"); }else{原创 2012-03-25 20:27:24 · 520 阅读 · 0 评论 -
静态链接库
在应用程序向导当中生成"静态库"类型的程序,新建一个头文件,形如:#ifndef MYSLL_H#define MYSLL_Hextern "C"{ int F(int n);}#endif然后在CPP当中实现,生成就可以得到lib的静态库文件了调用只要在头文件当中引入上面创建的头文件,然后导入静态库就可以了:#pragma comment(lib,"MLib.li原创 2012-03-24 23:32:02 · 351 阅读 · 0 评论 -
MFC自定义消息通信
在类的头文件当中定义一个自定义消息:#define WM_USRMSG WM_USER+100其中"WM_USER"是WINDOWS定义的一个用户可以使用的消息号然后定义一个以LRESULT为返回类型的函数,参数为(WPARAM,LPARAM)然后在消息映射中添加:ON_MESSAGE(WM_USRMSG,函数名)之后如果程序发送消息:::PostMessage原创 2012-03-24 22:55:26 · 577 阅读 · 0 评论 -
MFC线程同步
一.事件可以使用CEvent对象发出通知信号,通知系统是否可以运行等待线程假设有三个线程Thread1,Thread2,Thread3,一个全局的CEvent 对象oEventCEvent oEvent();//等待于(CEvent oEvent(FALSE,FALSE),即(禁止发信,非手动[自动事件]) 线程函数定义如下:UINT Thread1(LPVOID原创 2012-03-24 21:13:49 · 2063 阅读 · 0 评论 -
MFC 对话框的使用
常规的对话框分为模态和非模态,建立对话框的一般过程为:1.在资源当中添加好对话框资源2.通过在对话框资源当中为对话框添加类来为对话框添加成员变量及成员函数等对话框的类一般都是继续自CDialog或CDialogEx,在成员变量当中有一个枚举变量指明了对话框资源:enum { IDD = IDD_DIALOG2 };对话框中有两个函数一般需要重载,分别是afx_msg voi原创 2012-03-24 09:31:29 · 908 阅读 · 0 评论 -
MFC控件使用
对于一般控件,直接声明后调用其Create()方法就可以在视图中创建,如CStatic m_Static;m_Static.Create("STATIC",WS_CHILD|WS_VISIBLE|SS_CENTER,CRect(20,20,100,40),this,0);其中的CRect是用来定位及定义大小的.对于Button,需要响应事件的,就要先在Resource.h当原创 2012-03-22 22:31:55 · 536 阅读 · 0 评论