共用方式為


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_MAPEND_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

請參閱

參考

CHAIN_MSG_MAP_MEMBER

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

其他資源

訊息對應巨集 (ATL)

ATL 巨集