COMMAND_HANDLER ( id, codice, func )
Parametri
identificazione
[in] L'identificatore dell'acceleratore, il controllo o voce di menu.
codice
[in] Il codice di notifica.
func
[in] Il nome della funzione di gestione dei messaggi.
Osservazioni
Definisce una voce in una mappa messaggi. Mappe COMMAND_HANDLER un messaggio WM_COMMAND alla funzione gestore specificato, basato sul codice di notifica e l'identificatore del controllo. Ad esempio
classe CMyClass:...
{
pubblica:
nbsp; ...
BEGI&N_MSG_MAP(CMyClass)
COMMAND_HANDLER (IDC_MYCTL, EN_CHANGE, OnChange)
...
END_MSG_MAP()
/ / Quando un oggetto CMyClass riceve un WM_COMMAND
/ / messaggio identificato da IDC_MYCTL ed EN_CHANGE,
/ / il messaggio è diretto a CMyClass::OnChange
/ / per l'elaborazione effettiva.
LRESULT OnChange (…).
{ ... }
}
Qualsiasi funzione specificata in una macro COMMAND_HANDLER deve definito come segue:
LRESULT Comm&andHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOLamp; bHandled)
I set di mappa del messaggio bHandled su TRUE prima di CommandHandler viene chiamato. Se CommandHandler non gestisce completamente il messaggio, è necessario impostare bHandled su FALSE per indicare che il messaggio richiede ulteriore elaborazione.
&Notanbsp; Iniziare sempre una mappa messaggi con BEGIN_MSG_MAP. È possibile dichiarare le mappe successivo messaggio alternativo con ALT_MSG_MAP. La macro END_MSG_MAP segna la fine della mappa messaggi. Ogni mappa dei messaggi deve avere esattamente un'istanza di BEGIN_MSG_MAP ed END_MSG_MAP.
Oltre a COMMAND_HANDLER, è possibile utilizzare MESSAGE_HANDLER per mappare un messaggio WM_COMMAND senza tenere conto di un identificatore o codice. In questo caso, MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) sarà diretto tutti i messaggi WM_COMMAND perOnHandlerFunction.
Per ulteriori informazioni sull'utilizzo di mappe messaggi in ATL, vedere Mappe messaggio nell'articolo "Classi finestra ATL."
Vedi anche
COMMAND_ID_HANDLER, COMMAND_CODE_HANDLER, COMMAND_RANGE_HANDLER, NOTIFY_HANDLER