Categorie di messaggi
Quali tipi di messaggi vengono scritti per Esistono tre categorie principali:
Windows (messaggi)
Sono inclusi principalmente i messaggi che iniziano con il prefisso WM_ , ad eccezione di WM_COMMAND. I messaggi di Windows vengono gestiti da finestre e visualizzazioni. Questi messaggi hanno spesso parametri usati per determinare come gestire il messaggio.
Controllare le notifiche
Sono inclusi WM_COMMAND messaggi di notifica dai controlli e da altre finestre figlio alle finestre padre. Ad esempio, un controllo di modifica invia all'elemento padre un messaggio di WM_COMMAND contenente il codice di notifica del controllo EN_CHANGE quando l'utente ha eseguito un'azione che potrebbe aver modificato il testo nel controllo di modifica. Il gestore della finestra per il messaggio risponde al messaggio di notifica in modo appropriato, ad esempio il recupero del testo nel controllo.
Il framework instrada messaggi di notifica di controllo come altri messaggi di WM_ . Un'eccezione, tuttavia, è la BN_CLICKED messaggio di notifica del controllo inviato dai pulsanti quando l'utente fa clic su di essi. Questo messaggio viene trattato appositamente come messaggio di comando e indirizzato come altri comandi.
Messaggi di comando
Sono inclusi WM_COMMAND messaggi di notifica provenienti da oggetti dell'interfaccia utente: menu, pulsanti della barra degli strumenti e tasti di scelta rapida. Il framework elabora i comandi in modo diverso da altri messaggi e può essere gestito da più tipi di oggetti, come illustrato in Destinazioni comando.
Messaggi di Windows e messaggi di notifica di controllo
I messaggi nelle categorie 1 e 2 , ovvero i messaggi di Windows e le notifiche di controllo, vengono gestiti da finestre: oggetti di classi derivate dalla classe CWnd
. Sono incluse CFrameWnd
le classi , CView
CMDIFrameWnd
CMDIChildWnd
CDialog
e le proprie classi derivate da queste classi di base. Tali oggetti incapsulano un HWND
handle in una finestra di Windows.
Messaggi di comando
I messaggi nella categoria 3, ovvero i comandi, possono essere gestiti da un'ampia gamma di oggetti: documenti, modelli di documento e l'oggetto applicazione stesso oltre a finestre e visualizzazioni. Quando un comando influisce direttamente su un oggetto specifico, è opportuno che l'oggetto gestisca il comando. Ad esempio, il comando Apri nel menu File è associato logicamente all'applicazione: l'applicazione apre un documento specificato al momento della ricezione del comando. Il gestore per il comando Open è quindi una funzione membro della classe dell'applicazione. Per altre informazioni sui comandi e sul modo in cui vengono indirizzati agli oggetti, vedere Come il framework chiama un gestore.