COMMAND_HANDLER
Define uma entrada em um MAP da mensagem.
COMMAND_HANDLER( id, code, func )
Parâmetros
id
[in] O identificador do item de menu, controle ou acelerador.code
[in] O código de notificação.func
[in] O nome da função de manipulador de mensagens.
Comentários
COMMAND_HANDLER mapeia um WM_COMMAND mensagem para a função de manipulador especificado, 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 um COMMAND_HANDLER macro deve ser definida da seguinte maneira:
LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
O MAP da mensagem define bHandled para TRUE before CommandHandler é chamado. If CommandHandler totalmente não manipula a mensagem, ele deve ser definido bHandled para FALSE para indicar a mensagem precisa processamento adicional.
Observação: |
---|
Sempre começam com um MAP da mensagem BEGIN_MSG_MAP.Em seguida, você pode declarar mensagem subseqüente alternativo mapas com ALT_MSG_MAP.The END_MSG_MAP macro marca o participante do MAP da mensagem.Cada MAP da mensagem deve ter exatamente uma instância de BEGIN_MSG_MAP e END_MSG_MAP. |
Em adição a COMMAND_HANDLER, você pode usar MESSAGE_HANDLER to map a WM_COMMAND mensagem sem considerar a um identificador ou código.Nesse caso, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) direcionará todas WM_COMMAND mensagens de OnHandlerFunction.
Para obter mais informações sobre o uso de mapas de mensagem em ATL, consulte Mapas de mensagem.
Requisitos
Cabeçalho: atlwin.h