次の方法で共有


CHAIN_MSG_MAP_MEMBER

更新 : 2007 年 11 月

メッセージ マップにエントリを定義します。

CHAIN_MSG_MAP_MEMBER( theChainMember )

パラメータ

  • theChainMember
    [入力] メッセージ マップを含んでいるデータ メンバの名前。

解説

CHAIN_MSG_MAP_MEMBER は、データ メンバの既定のメッセージ マップにメッセージを送ります。既定のメッセージ マップは、BEGIN_MSG_MAP で宣言しておきます。データ メンバの代替メッセージ マップにメッセージを送るには、CHAIN_MSG_MAP_ALT_MEMBER を使用します。代替メッセージ マップは、ALT_MSG_MAP で宣言しておきます。

ttz68kw1.alert_note(ja-jp,VS.90).gifメモ :

メッセージ マップは、常に BEGIN_MSG_MAP で開始します。開始した後、ALT_MSG_MAP を使って、さらに代替メッセージ マップを宣言することもできます。END_MSG_MAP マクロは、メッセージ マップの終了位置を示します。どのメッセージ マップにも、BEGIN_MSG_MAPEND_MSG_MAP のインスタンスが 1 つずつ生成されている必要があります。

ATL でのメッセージ マップの使い方の詳細については、「メッセージ マップ」を参照してください。

使用例

class CMyContainerClass : public CWindowImpl<CMyContainerClass>
{
public:
   CMyContainedClass m_obj;

   BEGIN_MSG_MAP(CMyContainerClass)
      MESSAGE_HANDLER(WM_PAINT, OnPaint)
      // chain to default message map of m_obj
      CHAIN_MSG_MAP_MEMBER(m_obj)
   ALT_MSG_MAP(1)
      // chain to default message map of m_obj
      CHAIN_MSG_MAP_MEMBER(m_obj)
   ALT_MSG_MAP(2)
      MESSAGE_HANDLER(WM_CHAR, OnChar)
      // chain to alternate message map of m_obj
      CHAIN_MSG_MAP_ALT_MEMBER(m_obj, 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 がメッセージを処理しない場合、メッセージは m_obj の既定のメッセージ マップに送られ、処理されます。

  • ウィンドウ プロシージャが CMyClass の最初の代替メッセージ マップを使用している場合、メッセージはすべて m_obj の既定のメッセージ マップに送られます。

  • ウィンドウ プロシージャが CMyClass の 2 番目の代替メッセージ マップを使用し、OnChar がメッセージを処理しない場合、メッセージは m_obj の指定された代替メッセージ マップに送られます。CMyContainedClass クラスは、ALT_MSG_MAP(1) を使用してこのメッセージ マップを宣言している必要があります。

必要条件

ヘッダー : atlwin.h

参照

参照

CHAIN_MSG_MAP

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

その他の技術情報

メッセージ マップ マクロ (ATL)

ATL マクロ