CHAIN_MSG_MAP
メッセージ マップにエントリを定義します。
CHAIN_MSG_MAP( theChainClass )
パラメーター
- theChainClass
[入力]メッセージ マップを含む基本クラスの名前。
解説
CHAIN_MSG_MAP は、基本クラスの既定のメッセージ マップにメッセージを表示します ( BEGIN_MSG_MAPで宣言されている。基本クラスの代替メッセージにメッセージを ALT_MSG_MAP (と宣言します)、使用 CHAIN_MSG_MAP_ALTマップする指示するには。
[!メモ]
BEGIN_MSG_MAPからメッセージ マップを常に開始します。次 ALT_MSG_MAPの後続の代替メッセージ マップを宣言できます。END_MSG_MAP のマクロは、メッセージ マップの末尾を示します。各メッセージ マップでは、BEGIN_MSG_MAP と END_MSG_MAPの 1 個のインスタンスが一つある必要があります。
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