二 MFC编程入门之VS2010/MFC应用程序框架

时间:2022-11-26 20:34:37

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);