次の方法で共有


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

[!メモ]

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

NOTIFY_HANDLERに加えて、識別子またはコードに関係なく WM_NOTIFY のメッセージをマップするために MESSAGE_HANDLER を使用できます。この場合、MESSAGE_HANDLER(WM_NOTIFY, OnHandlerFunction) は OnHandlerFunctionに WM_NOTIFY のすべてのメッセージを表示します。

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*/);
};

必要条件

Header: atlwin.h

参照

関連項目

NOTIFY_ID_HANDLER

NOTIFY_CODE_HANDLER

REFLECTED_NOTIFY_CODE_HANDLER

NOTIFY_RANGE_HANDLER

COMMAND_HANDLER

その他の技術情報

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

ATL マクロ