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çã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