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 で宣言しておきます。
メモ : |
---|
メッセージ マップは、常に BEGIN_MSG_MAP で開始します。開始した後、ALT_MSG_MAP を使って、さらに代替メッセージ マップを宣言することもできます。END_MSG_MAP マクロは、メッセージ マップの終了位置を示します。どのメッセージ マップにも、BEGIN_MSG_MAP と END_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