CHAIN_MSG_MAP
定义消息映射中的项。
CHAIN_MSG_MAP( theChainClass )
参数
- theChainClass
[in]它包含消息映射)的基类的名称。
备注
CHAIN_MSG_MAP 处理消息指向基类的默认消息映射(声明 BEGIN_MSG_MAP)。若要处理消息到基类的替换消息映射以(声明 ALT_MSG_MAP),使用 CHAIN_MSG_MAP_ALT。
说明 |
---|
从 BEGIN_MSG_MAP始终启动消息映射。您可以声明与 ALT_MSG_MAP的后续替换消息映射。END_MSG_MAP 宏指示消息映射的结尾。每个消息映射必须正好包含 BEGIN_MSG_MAP 和 END_MSG_MAP一个实例。 |
有关使用的更多信息消息在ATL映射,请参见 消息映射。
示例
class CMyExtClass : public CMyBaseClass
{
public:
BEGIN_MSG_MAP(CMyExtClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(1)
// chain to first alternative message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map in CMyBaseClass
CHAIN_MSG_MAP_ALT(CMyBaseClass, 1)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnChar(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
此示例阐释下列内容:
如果窗口过程使用 CMyClass 的默认消息映射,然后 OnPaint 不处理消息,消息处理CMyBaseClass的默认处理的消息映射。
如果窗口过程在 CMyClass使用第一个替换消息映射,所有消息处理CMyBaseClass的默认消息映射。
如果窗口过程使用CMyClass的第二替换消息映射,然后 OnChar 不处理消息,消息处理到 CMyBaseClass的指定替换消息映射。CMyBaseClass 必须声明与 ALT_MSG_MAP(1)的此消息映射。
要求
Header: atlwin.h