次の方法で共有


CHAIN_MSG_MAP_MEMBER

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

CHAIN_MSG_MAP_MEMBER( theChainMember )

パラメーター

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

解説

CHAIN_MSG_MAP_MEMBER は、データ メンバーの既定のメッセージ マップにメッセージを表示します ( BEGIN_MSG_MAPで宣言されている。データ メンバーの代替メッセージにメッセージを ALT_MSG_MAP (と宣言します)、使用 CHAIN_MSG_MAP_ALT_MEMBERマップする指示するには。

[!メモ]

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 の番目の代替メッセージ マップを使用し、OnChar がメッセージを処理しないと、メッセージが指定 m_objの代替メッセージ マップに送られます。クラス CMyContainedClass は ALT_MSG_MAP(1)のこのメッセージ マップを宣言する必要があります。

必要条件

Header: atlwin.h

参照

関連項目

CHAIN_MSG_MAP

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

その他の技術情報

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

ATL マクロ