MFC消息映射
消息映射
借鉴 https://zhuanlan.zhihu.com/p/99511676
简单说就是消息和消息处理函数,一 一对应的消息映射表 ;
窗口接收到数据,就会在映射表中寻找一一对应的处理函数。
系统消息分为三种 标准Windows消息、命令消息、通知消息
消息示例 https://zhuanlan.zhihu.com/p/69302217
- 标准Windows消息 WM_开头的;
SendMessage(g_hResultListView, WM_MOUSEMOVE, (WPARAM)&ti, 0);
- 命令消息 会带上ID来辨别来自哪里的消息;
- 通知消息 一般会用在子向父窗口传递;
自定义消息
用户自定义消息实际上就是用户定义一个宏作为消息,此宏的值应该大于等于WM_USER,然后此宏就可以跟系统消息一样使用,窗口类中可以定义它的处理函数。
//通知界面更新
SendMessage(g_hResultListView, WM_TESTFINISH, (WPARAM)&ti, 0);
// /其窗口程序将接收消息的窗口句柄 制定被发送的消息 指定的附加消息指定消息 指定的附加消息指定消息
// / 窗口句柄 用于区别其它消息的常量值 通常是一个与消息有关的常量值 指向内存中的数据的指针
消息映射表
一般类会自动生成消息映射表
添加消息处理函数
- 类定义中添加消息处理函数,要以afx_msg开头命名。
- 在类的消息映射表中添加该消息的消息映射入口项。
- 类的实现中添加消息处理函数的函数实现。