COMMAND_HANDLER ( id, code, func )
Paramètres
id
[en] L'identificateur de l'élément de menu, le contrôle ou accélérateur.
code
[en] Le code de notification.
func
[en] Le nom de la fonction gestionnaire de messages.
Remarques
Définit une entrée dans une carte message. Cartes de COMMAND_HANDLER un message WM_COMMAND à la fonction de gestionnaire d'événements spécifié, basé sur le code de notification et l'identificateur du contrôle. Par exemple
classe CMyClass:...
{
public :
nbsp ; ...
BEGI&N_MSG_MAP(CMyClass)
COMMAND_HANDLER (IDC_MYCTL, EN_CHANGE, OnChange)
...
END_MSG_MAP()
/ / Quand un objet CMyClass reçoit un WM_COMMAND
/ / message identifié par IDC_MYCTL et EN_CHANGE,
/ / le message est dirigé vers CMyClass::OnChange
et pour le traitement réel.
OnChange LRESULT (...)
{ ... }
}
Toute fonction spécifiée dans une macro COMMAND_HANDLER doit définie comme suit:
LRESULT Comm&andHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOLamp; bHandled)
Les jeux de carte message bHandled vrai avant CommandHandler est appelée. Si CommandHandler ne gère pas entièrement le message, il faut définir bHandled faux pour indiquer le message nécessite un traitement supplémentaire.
&Notenbsp ; Toujours commencer une carte message avec BEGIN_MSG_MAP. Vous pouvez ensuite déclarer message remplaçant les cartes avec ALT_MSG_MAP. La macro END_MSG_MAP marque la fin de la carte de message. Chaque carte message doit avoir exactement une instance de BEGIN_MSG_MAP et END_MSG_MAP.
En plus de COMMAND_HANDLER, vous pouvez utiliser MESSAGE_HANDLER pour mapper un message WM_COMMAND sans égard à un identificateur ou un code. Dans ce cas, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) dirigera tous les messages WM_COMMANDOnHandlerFunction.
Pour plus d'informations sur l'utilisation des cartes message dans ATL, consultez Message des cartes dans l'article « Classes de fenêtre ATL. »
Les Macros ATL et fonctions globales
Voir aussi
COMMAND_ID_HANDLER, COMMAND_CODE_HANDLER, COMMAND_RANGE_HANDLER, NOTIFY_HANDLER