WTL提供一个机制,允许对同一个消息或命令,派发至不同的类。
BEGIN_MSG_MAP( CBase )//默认处理0号消息映射 MESSAGE_HANDLER( WM_DESTROY, OnDestroy1 ) ALT_MSG_MAP( 100 )//处理来自100的消息映射 MESSAGE_HANDLER( WM_DESTROY, OnDestroy2 ) END_MSG_MAP()
在BEGIN_MSG_MAP中,默认只对消息ID是0的处理,ALT_MSG_MAP宏可以指定处理响应消息ID号。
如何设定消息是多少号呢?默认从系统发出的号都是0号,如果想改可以使用CHAIN_MSG_MAP_ALT_MEMBER
如:
BEGIN_MSG_MAP(CMainFrame)
MESSAGE_HANDLER(WM_Create, OnCreate)
CHAIN_MSG_MAP(CUpdateUI<CMainFrame>)
CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)
CHAIN_MSG_MAP_ALT_MEMBER(m_view, 1)
END_MSG_MAP()
转载于:https://www.cnblogs.com/fanzi2009/archive/2009/07/27/1532087.html