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