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()

posted @ 2009-07-27 14:51  Fan Zhang  阅读(203)  评论(0)    收藏  举报