次の方法で共有

Facebook x.com LinkedIn 電子メール

MESSAGE_HANDLER

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

MESSAGE_HANDLER( 
 msg, 
 func 
)

パラメーター

  • msg
    [入力] Windows メッセージ。

  • func
    [入力] メッセージ ハンドラー関数の名前。

解説

MESSAGE_HANDLER は、Windows メッセージを指定されたハンドラー関数に割り当てます。

MESSAGE_HANDLER マクロに指定する関数は、いずれも次のように定義する必要があります。

LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

MessageHandler が呼び出される前に、メッセージ マップでは bHandled が TRUE に設定されます。 MessageHandler は、メッセージをすべて処理できない場合、bHandled を FALSE に設定して、メッセージ処理がさらに必要であることを示す必要があります。

注意

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

MESSAGE_HANDLER のほかに、COMMAND_HANDLERNOTIFY_HANDLER を使用して WM_COMMAND メッセージと WM_NOTIFY メッセージをそれぞれ割り当てることができます。

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

使用例

class CMyBaseWindow : public CWindowImpl<CMyBaseWindow>
{
public:
 BEGIN_MSG_MAP(CMyBaseWindow)
 MESSAGE_HANDLER(WM_CREATE, OnCreate)
 END_MSG_MAP()
 // When a CMyBaseWindow object receives a WM_CREATE message, the message
 // is directed to CMyBaseWindow::OnCreate for the actual processing.
 LRESULT OnCreate(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
 BOOL& /*bHandled*/)
 {
 return 0; 
 }
};

必要条件

**ヘッダー:**atlwin.h

参照

参照

MESSAGE_RANGE_HANDLER

その他の技術情報

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

ATL マクロ


  • Last updated on 2011年08月09日