割り当てます ( id、 コード, func )
パラメーター
id
[入力]メニュー項目、コントロール、またはアクセラレータの識別子。
コード
[入力]通知コード。
func
[入力]メッセージ ハンドラー関数の名前。
解説
エントリをメッセージ マップに定義します。ただしのマップ、 WM_COMMANDメッセージを指定されたハンドラー関数に基づく通知コードとコントロール id。たとえば
cMyClass クラス:.{パブリック。特価;...BEGIN_MSG_MAP(CMyClass)ただし (IDC_MYCTL、EN_CHANGE、OnChange)...END_MSG_MAP()//、CMyClass オブジェクト、WM_COMMAND を受け取ったとき//メッセージ識別 IDC_MYCTL して EN_CHANGE など//メッセージが CMyClass::OnChange に指示されます。・ ・実際の処理をします。LRESULT OnChange (...){ ... }}(&N)
ただしマクロで指定した任意の関数は次のように定義する必要があります。:
LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOLamp; bHandled)(&A)
メッセージ マップ セット bHandled にtrue を設定する前に CommandHandler と呼ばれます。場合 CommandHandler 、メッセージを完全に処理しないそれを設定する必要があります bHandled 、メッセージ必要がありますさらに処理を示すFALSEに。
注特価;常にメッセージ マップをBEGIN_MSG_MAPを開始します。代替メッセージALT_MSG_MAPにマップを宣言することすることができます。END_MSG_MAPマクロは、メッセージ マップの末尾をマークします。すべてのメッセージ マップがBEGIN_MSG_MAPとEND_MSG_MAPの 1 つのインスタンスがあります。(&N)。
ただしに加え、割り当てますを使用して、 WM_COMMANDメッセージ識別子またはコードに関係なくマップできます。この例では、 MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) すべてのWM_COMMANDメッセージを指示します。OnHandlerFunction。
ATL でのメッセージ マップの使い方の詳細については、メッセージ マップ「ATL ウィンドウ クラス」の記事で参照してください
参照してください。