Condividi tramite


COMMAND_HANDLER

Definisce una voce in una mappa dei messaggi.

COMMAND_HANDLER( id, code, func )

Parametri

  • id
    [in] identificatore della voce di menu, controllo, o dei tasti di scelta rapida.

  • code
    [in] il codice della notifica.

  • func
    [in] il nome della funzione di gestore.

Note

COMMAND_HANDLER esegue il mapping di un messaggio WM_COMMAND la funzione del gestore specificato, in base al codice di notifica e all'identificatore di controllo.Di seguito è riportato un esempio:

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

Qualsiasi funzione specificata in una macro COMMAND_HANDLER deve essere definita come segue:

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

Imposta bHandled della mappa messaggi a TRUE prima CommandHandler viene chiamato.Se CommandHandler completamente non gestisce il messaggio, deve impostare bHandled a FALSE per indicare un'ulteriore elaborazione delle necessità del messaggio.

[!NOTA]

Inizia sempre una mappa messaggi con BEGIN_MSG_MAP.È quindi possibile dichiarare le mappe messaggi alternate successive con ALT_MSG_MAP.La macro END_MSG_MAP contrassegna la fine della mappa messaggi.Ogni mappa messaggi deve contenere esattamente un'istanza BEGIN_MSG_MAP e END_MSG_MAP.

Oltre a COMMAND_HANDLER, è possibile utilizzare MESSAGE_HANDLER per eseguire il mapping di un messaggio WM_COMMAND indipendentemente da un identificatore o dal codice.In questo caso, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) dirigerà tutti i messaggi WM_COMMAND a OnHandlerFunction.

Per ulteriori informazioni sull'utilizzo delle mappe dei messaggi in ATL, vedere Mappe messaggi.

Requisiti

Header: atlwin.h

Vedere anche

Riferimenti

COMMAND_ID_HANDLER

COMMAND_CODE_HANDLER

COMMAND_RANGE_HANDLER

NOTIFY_HANDLER

Altre risorse

Macro della mappa messaggi (ATL)

Macro ATL