NOTIFY_HANDLER
Définit une entrée dans une table des messages.
NOTIFY_HANDLER(
id,
cd,
func
)
Paramètres
id
[in] L'identificateur de l'émission de contrôle le message.cd
[in] code de notification.func
[in] le nom de la fonction gestionnaire de messages.
Notes
NOTIFY_HANDLER mappe un message de WM_NOTIFY à la fonction gestionnaire spécifié, en fonction de code de notification et l'identificateur de contrôle.
En exécutant spécifié dans une macro d' NOTIFY_HANDLER doivent être définis comme suit :
LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
Définit bHandled de table des messages à TRUE avant NotifyHandler est appelée.Si NotifyHandler ne gère pas complètement le message, il doit définir bHandled à FALSE pour indiquer le message nécessite un traitement davantage.
[!REMARQUE]
Commencez toujours une table des messages avec BEGIN_MSG_MAP.Vous pouvez déclarer les tables des messages secondaires suivantes avec ALT_MSG_MAP.La macro d' END_MSG_MAP marque la carte du message.Chaque table des messages doit avoir une seule instance d' BEGIN_MSG_MAP et d' END_MSG_MAP.
En plus de NOTIFY_HANDLER, vous pouvez utiliser MESSAGE_HANDLER pour mapper un message de WM_NOTIFY sans tenir compte d'un identificateur ou d'un code.Dans ce cas, MESSAGE_HANDLER(WM_NOTIFY, OnHandlerFunction) dirigera tous les messages de WM_NOTIFY à OnHandlerFunction.
Pour plus d'informations sur l'utilisation des tables des messages dans ATL, consultez tables des messages.
Exemple
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*/);
};
Configuration requise
Header: atlwin.h