CHAIN_MSG_MAP
定義在訊息對應的項目。
CHAIN_MSG_MAP( theChainClass )
參數
- theChainClass
[in] 包含訊息對應的基底類別名稱。
備註
CHAIN_MSG_MAP 指示訊息傳送至一個基底類別的預設的訊息對應 (宣告 BEGIN_MSG_MAP)。若要將訊息加入至基底類別 (Base Class) 的替代的訊息對應 (請宣告 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