BEGIN_MSG_MAP
既定のメッセージ マップの開始位置を示します。
BEGIN_MSG_MAP( theClass )
パラメーター
- theClass
[入力]メッセージ マップを含むクラスの名前。
解説
CWindowImpl::WindowProc はウィンドウに送信されるメッセージを処理する既定のメッセージ マップを使用します。メッセージ マップでは、適切なハンドラー関数または別のメッセージ マップにメッセージを表示します。
次のマクロは、ハンドラー関数にメッセージを割り当てます。この関数は theClassで定義する必要があります。
マクロ |
説明 |
---|---|
ハンドラー関数に Windows のメッセージを割り当てます。 |
|
ハンドラー関数に Windows メッセージの連続する範囲をマップします。 |
|
メニュー項目、コントロール、またはアクセラレータの通知コードと識別子に基づいてハンドラー関数に WM_COMMAND のメッセージが割り当てられます。 |
|
メニュー項目、コントロール、またはアクセラレータの ID に基づいてハンドラー関数に WM_COMMAND のメッセージが割り当てられます。 |
|
通知コードに基づいてハンドラー関数に WM_COMMAND のメッセージが割り当てられます。 |
|
メニュー項目、コントロール、またはアクセラレータの ID に基づいてハンドラー関数に WM_COMMAND のメッセージの連続した範囲が割り当てられます。 |
|
通知コードとコントロール ID に基づいてハンドラー関数に WM_NOTIFY のメッセージが割り当てられます。 |
|
コントロール ID に基づいてハンドラー関数に WM_NOTIFY のメッセージが割り当てられます。 |
|
通知コードに基づいてハンドラー関数に WM_NOTIFY のメッセージが割り当てられます。 |
|
コントロール ID に基づいてハンドラー関数に WM_NOTIFY のメッセージの連続した範囲が割り当てられます。 |
次のマクロは別のメッセージ マップにメッセージを表示します。このプロセスが呼び出されます」。と「チェーン
マクロ |
説明 |
---|---|
基本クラスの既定のメッセージ マップのチェーン。 |
|
クラスのデータ メンバーの既定のメッセージ マップのチェーン。 |
|
基本クラスの代替メッセージ マップのチェーン。 |
|
クラスのデータ メンバーの代替メッセージ マップのチェーン。 |
|
実行時にクラスの既定のメッセージ マップのチェーン。 |
次のマクロは、親ウィンドウから「」リフレクション メッセージを表示します。たとえば、コントロールは、処理の親ウィンドウに通知メッセージを送信します。通常、親ウィンドウは、コントロールに対してメッセージを返送できます。
マクロ |
説明 |
---|---|
メニュー項目、コントロール、またはアクセラレータの通知コードと識別子に基づいてハンドラー関数に WM_COMMAND のリフレクション メッセージを割り当てられます。 |
|
メニュー項目、コントロール、またはアクセラレータの ID に基づいてハンドラー関数に WM_COMMAND のリフレクション メッセージを割り当てられます。 |
|
通知コードに基づいてハンドラー関数に WM_COMMAND のリフレクション メッセージを割り当てられます。 |
|
コントロール ID の連続した範囲に基づいてハンドラー関数に WM_COMMAND のリフレクション メッセージを割り当てられます。 |
|
コントロール ID の通知コードおよび連続した範囲に基づいてハンドラー関数に WM_COMMAND のリフレクション メッセージを割り当てられます。 |
|
通知コードとコントロール ID に基づいてハンドラー関数に WM_NOTIFY のリフレクション メッセージを割り当てられます。 |
|
コントロール ID に基づいてハンドラー関数に WM_NOTIFY のリフレクション メッセージを割り当てられます。 |
|
通知コードに基づいてハンドラー関数に WM_NOTIFY のリフレクション メッセージを割り当てられます。 |
|
コントロール ID の連続した範囲に基づいてハンドラー関数に WM_NOTIFY のリフレクション メッセージを割り当てられます。 |
|
コントロール ID の通知コードおよび連続した範囲に基づいてハンドラー関数に WM_NOTIFY のリフレクション メッセージを割り当てられます。 |
使用例
class CMyExtWindow : public CMyBaseWindow
{
public:
BEGIN_MSG_MAP(CMyExtWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
CMyExtWindow のオブジェクトが WM_PAINT のメッセージを受信する場合、メッセージは実際の処理の CMyExtWindow::OnPaint に送られます。OnPaint メッセージに示されている場合は CMyBaseWindowの既定のメッセージ マップにさらに処理、メッセージ、インデックスが必要です。
既定のメッセージ マップに加えて、ALT_MSG_MAPの代替メッセージ マップを定義できます。BEGIN_MSG_MAPからメッセージ マップを常に開始します。その後、後続の代替メッセージ マップを宣言できます。次の例では、既定のメッセージ マップと 1 個の代替メッセージ マップの各含む 1 のハンドラーの関数の例です:
BEGIN_MSG_MAP(CMyOneAltClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
次の例は、2 種類の代替メッセージ マップを示します。既定のメッセージ マップは空です。
BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()
END_MSG_MAP のマクロは、メッセージ マップの末尾を示します。正確 BEGIN_MSG_MAP と END_MSG_MAPの 1 個のインスタンスが存在することに注意してください。
ATL にメッセージ マップを使用する方法の詳細については、[メッセージ マップ]を参照してください。
必要条件
Header: atlwin.h