次の方法で共有


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 の前の TRUE へのメッセージ マップのセット bHandled が呼び出されます。MessageHandler が完全にメッセージを処理しない限り、FALSE にメッセージがさらに処理する必要があることを示すために bHandled を設定する必要があります。

[!メモ]

BEGIN_MSG_MAPからメッセージ マップを常に開始します。次 ALT_MSG_MAPの後続の代替メッセージ マップを宣言できます。END_MSG_MAP のマクロは、メッセージ マップの末尾を示します。各メッセージ マップでは、BEGIN_MSG_MAPEND_MSG_MAPの 1 個のインスタンスが一つある必要があります。

MESSAGE_HANDLERに加えて、各 WM_COMMANDWM_NOTIFY のメッセージをマップするために COMMAND_HANDLERNOTIFY_HANDLER を使用できます。

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;   
   }
};

必要条件

Header: atlwin.h

参照

関連項目

MESSAGE_RANGE_HANDLER

その他の技術情報

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

ATL マクロ