消息映射表
1。对不同的消息,MFC用不同的宏实现消息映射
2。消息映射表处理这个类所定义的消息映射和这个类不处理而定义的消息而传递给其父类处理的消息映射
3。在BEGIN_...和END_...之间的宏为这个消息映射表必须处理的消息产生登录入口
4。宏分类:
1、标准WINDOWS消息都由宏ON_WM_XXX处理,其中XXX为标准消息名
2、宏ON_REGISTERED_MESSAGE用于处理用户自己登记注册的WINDOWS窗口消息。
这个宏接受NEAR类型的无符号整型变量,这个变量就是已经登记注册的WINDOWS消息标识。
该消息标识可由RegisterWindowMessage函数调用而得到系统唯一的全局消息。
例如:afx_msg LRESULT OnFind(WPARAM wParam,LPARAM lParam);
static UINT NEAR WM_FIND=RegisterWindowMessage("COMMONDLG_FIND"); //用此函数登记的消息范围是0XC000~0XFFFF
( 注: WM_FIND必须说明为NEAR类型 )
BEGIN_MESSAGE_MAP(...)
...
ON_REGISTERED_MESSAGE(WM_FIND,OnFind)
...
END_MESSAGE_MAP
3、用户自定义的WINDOWS消息可以用宏ON_MESSAGE包含在消息映射中
#define WM_MYMESSAGE WM_USER+100
ON_MESSAGE(WM_MYMESSAGE,OnMymessage)
可以通过: CWnd * pwnd=...; pwnd->SendMessage(WM_MYMESSAGE);来实现
4、命令消息的处理是使用宏ON_COMMA