WTL允许对同一个消息或命令派发到不同类

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

猜你喜欢

转载自blog.csdn.net/weixin_33877092/article/details/94192466
今日推荐