COMMAND_HANDLER ( id, código de, func )
Parâmetros
identificação
[no] O identificador do item de menu, Controlarar ou acelerador.
código
[no] O código de notificação.
func
[no] O nome da função mensagem-manipulador.
Observações
Define uma entrada em um mapa da mensagem. COMMAND_HANDLER mapeia uma mensagem WM_COMMAND para a função de manipulador especificado, com base no código de notificação e o identificador de Controlarar. Por exemplo
classe CMyClass:...
{
público:
nbsp; ...
BEGI&N_MSG_MAP(CMyClass)
COMMAND_HANDLER (IDC_MYCTL, EN_CHANGE, OnChange)
...
END_MSG_MAP()
/ / Quando um objeto CMyClass recebe um WM_COMMAND
/ / mensagem identificado por IDC_MYCTL e EN_CHANGE,
/ / a mensagem é direcionada para CMyClass::OnChange
/ / para o processamento real.
LRESULT OnChange (...)
{ ... }
}
Qualquer função especificada em uma macro COMMAND_HANDLER deve ser definida como segue:
LRESULT Comm&andHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOLamp; bHandled)
Os conjuntos de mapa de mensagem bHandled para TRUE antes CommandHandler é chamado. Se CommandHandler totalmente não manipula a mensagem, ele deve definir bHandled como falso para indicar que a mensagem precisa processamento adicional.
&Notanbsp; Sempre começa um mapa da mensagem com BEGIN_MSG_MAP. Em seguida, você pode declare mapas de mensagem alternativa subseqüentes com ALT_MSG_MAP. A macro END_MSG_MAP marca o final do mapa da mensagem. Cada mapa da mensagem deve ter exatamente uma instância de BEGIN_MSG_MAP e END_MSG_MAP.
Além de COMMAND_HANDLER, você pode usar MESSAGE_HANDLER para mapear uma mensagem WM_COMMAND sem relação a um identificador ou código. Neste caso, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) irá direcionar as mensagens de WM_COMMAND aOnHandlerFunction.
Para obter mais informações sobre como usar mapas de mensagem no ATL, consulte Mensagem mapas no artigo "Classes de janela do ATL".
Ver também
COMMAND_ID_HANDLER, COMMAND_CODE_HANDLER, COMMAND_RANGE_HANDLER, NOTIFY_HANDLER