ATL3.0中的窗口类
2006-07-22 22:53:41 来源:WEB开发网核心提示: 命令消息映射宏:命令消息映射宏只处理命令消息(WM_COMMAND消息),但是它能让我们根据消息类型或者发送命令消息的控件ID来指定消息处理函数,ATL3.0中的窗口类(6),COMMAND_HANDLER映射一个特定控件的一条特定消息到一个处理函数; COMMAND_ID_HANDLER
命令消息映射宏:
命令消息映射宏只处理命令消息(WM_COMMAND消息),但是它能让我们根据消息类型或者发送命令消息的控件ID来指定消息处理函数。
- COMMAND_HANDLER映射一个特定控件的一条特定消息到一个处理函数;
- COMMAND_ID_HANDLER映射一个特定控件的所有消息到一个处理函数;
- COMMAND_CODE_HANDLER映射任意控件的一个特定消息到一个处理函数;
- COMMAND_RANGE_HANDLER映射一定范围内的控件的所有消息到一个处理函数;
- COMMAND_RANGE_CODE_HANDLER映射一定范围内的控件的一条特定消息到一个处理函数。
命令消息处理函数应该具有如下的原形:
LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
其中,参数wNotifyCode代表消息代码,wID代表发送消息的控件的ID,hWndCtl代表发送消息的控件的窗口句柄,bHandled的意义如前所述。
通知消息映射宏:
通知消息映射宏用来处理通知消息(WM_NOTUFY消息),它根据通知消息的类型和发送通知消息的控件的不同将消息映射到不同的处理函数,这些宏与前面讲的命令消息映射宏是等价的,唯一的不同就是它处理的是通知消息而不是命令消息。
- NOTIFY_HANDLER
- NOTIFY_ID_HANDLER
- NOTIFY_CODE_HANDLER
- NOTIFY_RANGE_HANDLER
- NOTIFY_RANGE_CODE_HANDLER
通知消息处理函数都需要如下的原形:
LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
其中,参数idCtrl代表发送通知消息的控件的ID,参数pnmh是指向一个NMHDR结构的指针,bHandled的意义如前所述。
更多精彩
赞助商链接