NOTIFY_HANDLER
メッセージ マップにエントリを定義します。
NOTIFY_HANDLER(
id,
cd,
func
)
パラメーター
id
[入力] メッセージを送信しているコントロールの ID。cd
[入力] 通知コード。func
[入力] メッセージ ハンドラー関数の名前。
解説
NOTIFY_HANDLER は、通知コードとコントロール ID に基づいて、WM_NOTIFY メッセージを指定されたハンドラー関数に割り当てます。
NOTIFY_HANDLER マクロに指定する関数は、すべて次のように定義する必要があります。
LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
NotifyHandler が呼び出される前に、メッセージ マップでは bHandled が TRUE に設定されます。 NotifyHandler は、メッセージをすべて処理できない場合、bHandled を FALSE に設定して、メッセージ処理がさらに必要であることを示す必要があります。
注意
メッセージ マップは、常に BEGIN_MSG_MAP で開始します。 開始した後、ALT_MSG_MAP を使って、さらに代替メッセージ マップを宣言することもできます。 END_MSG_MAP マクロは、メッセージ マップの終了位置を示します。 どのメッセージ マップにも、BEGIN_MSG_MAP と END_MSG_MAP のインスタンスが 1 つずつ生成されている必要があります。
NOTIFY_HANDLER のほかに、MESSAGE_HANDLER を使用して、識別子やコードに関係なく、WM_NOTIFY メッセージを割り当てることもできます。 この場合、MESSAGE_HANDLER(WM_NOTIFY, OnHandlerFunction) は、すべての WM_NOTIFY メッセージを OnHandlerFunction に送ります。
ATL でのメッセージ マップの使い方の詳細については、「メッセージ マップ」を参照してください。
使用例
class CMyDialog2 : public CDialogImpl<CMyDialog2>
{
public:
enum { IDD = IDD_MYDLG };
BEGIN_MSG_MAP(CMyDialog2)
NOTIFY_HANDLER(IDC_TREE1, NM_CLICK, OnNMClickTree1)
END_MSG_MAP()
public:
// When a CMyDialog2 object receives a WM_NOTIFY message
// identified by IDC_TREE1 and NM_CLICK, the message is
// directed to CMyDialog2::OnNMClickTree1 for the actual
// processing.
LRESULT OnNMClickTree1(int /*idCtrl*/, LPNMHDR pNMHDR, BOOL& /*bHandled*/);
};
必要条件
**ヘッダー:**atlwin.h