VS2013 MFC 消息映射
2016-07-17 17:09
190 查看
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类:
![](https://img-blog.csdn.net/20160717163038701)
②在View类的头文件中添加下面一句:
#define WM_MYMSG WM_USER+1
![](https://img-blog.csdn.net/20160717163022545)
view类头文件的构造函数中添加消息声明函数用于响应消息:
DECLARE_MESSAGE_MAP()
afx_msg LRESULT OnMyMsgHandler(WPARAM wParam, LPARAM lParam);
![](https://img-blog.csdn.net/20160717163030842)
在View类的源文件中添加消息映射:
![](https://img-blog.csdn.net/20160717163026780)
3.分别编写发送消息的程序来SendMessage和相应消息的函数。
(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和相应消息的函数。
相关文章推荐
- javascript变量
- C#的第五节课
- CentOS7下Mysql Cluster 7.4安装配置
- c++ hash_map
- 广告分析
- elk+redis分布式分析nginx日志
- [CF678E] Another Sith Tournament([JZOJ4648] 锦标赛)
- 在腾讯云安装PHPMyAdmin的过程
- POJ 2337 Catenyms
- [Leetcode]189. Rotate Array
- sql代码重构—— 创建自定义函数(三)——自定义函数和存储过程的对比
- 广告分析
- 【BZOJ-2768】冠军调查 最小割
- redis server can not continue
- 绝不容错过的轻量级软件
- 《Lua程序设计》第1章 开始 学习笔记
- centos7安装Nessus
- BZOJ 1059 [ZJOI2007]矩阵游戏
- java-基础-jdk命令行工具
- SSH免密码登录配置