Partilhar via


COMMAND_HANDLER

Define uma entrada em um mapa de mensagem.

COMMAND_HANDLER( id, code, func )

Parâmetros

  • id
    [in] o identificador do item de menu, do controle, ou de aceleração.

  • code
    [in] o código de notificação.

  • func
    [in] o nome da função de mensagem- manipulador.

Comentários

COMMAND_HANDLER mapeia uma mensagem de WM_COMMAND à função especificada do manipulador, com base no código de notificação e o identificador de controle.Por exemplo:

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

Qualquer função especificada em uma macro de COMMAND_HANDLER deve ser definida como segue:

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

Os conjuntos bHandled do mapa da mensagem Verdadeiro antes de CommandHandler são chamados.Se CommandHandler não trata totalmente a mensagem, deve definir bHandled a Falso para indicar a adicional das necessidades de mensagem.

ObservaçãoObservação

Inicie sempre um mapa de mensagem com BEGIN_MSG_MAP.Você pode declarar em mapas alternativos subseqüentes de mensagem com ALT_MSG_MAP.A macro de END_MSG_MAP marca ao final do mapa de mensagem.Cada mapa de mensagem deve ter exatamente uma instância de BEGIN_MSG_MAP e de END_MSG_MAP.

Além de COMMAND_HANDLER, você pode usar MESSAGE_HANDLER para mapear uma mensagem de WM_COMMAND sem consideração a um identificador ou um código.Em esse caso, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) direcionará todas as mensagens de WM_COMMAND a OnHandlerFunction.

Para obter mais informações sobre como usar mapas de mensagem em ATL, consulte Mapas de mensagem.

Requisitos

Cabeçalho: atlwin.h

Consulte também

Referência

COMMAND_ID_HANDLER

COMMAND_CODE_HANDLER

COMMAND_RANGE_HANDLER

NOTIFY_HANDLER

Outros recursos

Macros do mapa de mensagens (ATL)

Macros de ATL