Partager via


COMMAND_HANDLER

Définit une entrée dans une table des messages.

COMMAND_HANDLER( id, code, func )

Paramètres

  • id
    [in] L'identificateur de l'élément de menu, le contrôle, ou de l'accélérateur.

  • code
    [in] code de notification.

  • func
    [in] le nom de la fonction gestionnaire de messages.

Notes

COMMAND_HANDLER mappe un message de WM_COMMAND à la fonction gestionnaire spécifié, en fonction de code de notification et l'identificateur de contrôle.Par exemple :

class ATL_NO_VTABLE CPolyProp :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CPolyProp, &CLSID_PolyProp>,
   public IPropertyPageImpl<CPolyProp>,
   public CDialogImpl<CPolyProp>
{
public:
BEGIN_COM_MAP(CPolyProp)
   COM_INTERFACE_ENTRY(IPropertyPage)
END_COM_MAP()

BEGIN_MSG_MAP(CPolyProp)
   COMMAND_HANDLER(IDC_SIDES, EN_CHANGE, OnEnChangeSides)
   CHAIN_MSG_MAP(IPropertyPageImpl<CPolyProp>)
END_MSG_MAP()

   // When a CPolyProp object receives a WM_COMMAND message identified 
   // by IDC_SIDES and EN_CHANGE, the message is directed to 
   // CPolyProp::OnEnChangeSides for the actual processing.
   LRESULT OnEnChangeSides(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, 
      BOOL& /*bHandled*/);

En exécutant spécifié dans une macro d' COMMAND_HANDLER doivent être définis comme suit :

LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);

Définit bHandled de table des messages à TRUE avant CommandHandler est appelée.Si CommandHandler 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 COMMAND_HANDLER, vous pouvez utiliser MESSAGE_HANDLER pour mapper un message de WM_COMMAND sans tenir compte d'un identificateur ou d'un code.Dans ce cas, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) dirigera tous les messages de WM_COMMAND à OnHandlerFunction.

Pour plus d'informations sur l'utilisation des tables des messages dans ATL, consultez tables des messages.

Configuration requise

Header: atlwin.h

Voir aussi

Référence

COMMAND_ID_HANDLER

COMMAND_CODE_HANDLER

COMMAND_RANGE_HANDLER

NOTIFY_HANDLER

Autres ressources

Macros de table des messages (ATL)

Macros ATL