1、利用MFC向导生成单文档应用程序框架
点菜单中的Build->Build HelloWorld编译程序,然后点Debug->StartWithout Debugging(快捷键Ctrl+F5)运行程序,
也可以直接点Debug->Start Without Debugging,这时会弹出对话框提示是否编译,选择“Yes”,
VS2010将自动编译链接运行HelloWorld程序。
2、VS2010应用程序工程中文件的组成结构
应用程序头文件和源文件
HelloWorld.*:应用程序的主头文件
MainFrm.*:用于创建主框架、菜单栏、工具栏和状态栏等
HelloWorldDoc.*:包含一些用来初始化文档、串行化文档和调试的成员函数
HelloWorldView.*:用来显示和打印文档数据,包含一些绘画和用于调试的成员函数
ClassView.*:用于实现应用程序界面左侧面板的ClassView
FileView.*:用于实现应用程序界面左侧面板的FileView
OutputWnd..*:用于实现应用程序下侧面板Output
PropertiesWnd.*:用于实现应用程序界面右侧面板Properties
ViewTree.*:用于实现出现在ClassView和FileView等中的树视图
3、MFC应用程序框架分析
初始化->注册并创建窗口->显示->更新窗口->消息循环,消息都由窗口过程函数处理
CHelloWorldApp 处理消息,将收到的消息分发给相应的对象
CMainnFrame CHelloWorldView的父窗口
CHelloWorldDoc 文档
CHelloWorldView 视图,显示文档类CHelloWorldDoc的数据
4、MFC消息映射机制概述
消息分类:标准Windows消息、命令消息、通知消息
消息映射表:BEGIN_MESSAGE_MAP()....END_MESSAGE_MAP() CMainFrame
属性
事件:鼠标点击等
消息:WM_*,对接收的某种消息的函数进行重写
重写:对本身的某些函数进行重写
如何添加自定义消息呢?
1、定义自定义消息
#defineWM_RESP_LOGIN WM_USER + 0x101
2、声明自定义消息处理函数
afx_msg LRESULTOnWmRespLogin(WPARAM wParam, LPARAM lParam);
3、实现自定义消息处理函数
LRESULTCDlgLogin::OnWmRespLogin(WPARAM wParam, LPARAM lParam)
4、运用宏实现消息映射
BEGIN_MESSAGE_MAP(CDlgLogin,CDialogEx)
ON_MESSAGE(WM_RESP_LOGIN,OnWmRespLogin)
END_MESSAGE_MAP()
5、发送自定义消息到消息队列
PostMessage(hwnd, msgCode, (WPARAM)NULL,(LPARAM)lpReq);