0.消息是MFC程序进行通讯的基础,在MFC应用程序中传输的消息有三种类型:窗口消息、命令消息和控件通知。
(1)窗口消息:WM_XXX 窗口消息(Window Message)一般与窗口的内部运作有关,如:创建窗口、绘制窗口和销毁窗口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。
(2)命令消息:WM_COMMAND
命令消息一般与处理用户请求相关,当用户单击一个菜单项或工具栏时,命令消息产生,并被发送到能处理该请求的类对象(如:装载文件、编辑文本和保存选项等)。
(3)控件通知:有多种格式
通常,控件通知在某些重要事件发生时,由控件窗口发送到父窗口,如打开一个组合框。控件通知为父窗口进一步控制子窗口提供了机会。例如,打开一个组合框时,父窗口可以用组合框初建时得不到的消息填充它。 BN_XXXX是CButton产生的消息,EN_XXXX是CEdit产生的消息,等等。
1.以窗口消息为例编写自定义消息和系统消息。首先创建MFC工程MFCMessage,View类的基类选择CFormView类。资源视图的Dialog窗口上添加一个按钮。
2.自定义消息有两种方法:
①选择项目菜单下的类向导选项添加自定义消息WM_MyMSG,注意类名选择View类:
②在View类的头文件中添加下面一句:
#define WM_MYMSG WM_USER+1
view类头文件的构造函数中添加消息声明函数用于响应消息:
DECLARE_MESSAGE_MAP()
afx_msg LRESULT OnMyMsgHandler(WPARAM wParam, LPARAM lParam);
在View类的源文件中添加消息映射:
3.分别编写发送消息的程序来SendMessage和相应消息的函数。