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_MAP と END_MSG_MAPの 1 個のインスタンスが一つある必要があります。
MESSAGE_HANDLERに加えて、各 WM_COMMAND と WM_NOTIFY のメッセージをマップするために COMMAND_HANDLER と NOTIFY_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