BEGIN_MSG_MAP
Contrassegna l'inizio della mappa messaggi predefinita.
BEGIN_MSG_MAP( theClass )
Parametri
- theClass
[in] il nome della classe che contiene la mappa messaggi.
Note
CWindowImpl::WindowProc utilizza la mappa messaggi predefinita per elaborare i messaggi inviati alla finestra.La mappa messaggi indirizzare i messaggi alla funzione di gestione corretta o a un'altra mappa messaggi.
Le macro associano un messaggio a una funzione di gestione.Questa funzione deve essere definita in theClass.
Macro |
Descrizione |
---|---|
Esegue il mapping di un messaggio di Windows a una funzione di gestione. |
|
Esegue il mapping di un intervallo contiguo dei messaggi di Windows a una funzione di gestione. |
|
Esegue il mapping di un messaggio WM_COMMAND a una funzione di gestione, in base al codice di notifica e all'identificatore della voce di menu, controllo, o dei tasti di scelta rapida. |
|
Esegue il mapping di un messaggio WM_COMMAND a una funzione di gestione, in base all'identificatore della voce di menu, controllo, o dei tasti di scelta rapida. |
|
Esegue il mapping di un messaggio WM_COMMAND a una funzione di gestione, in base al codice della notifica. |
|
Esegue il mapping di un intervallo contiguo dei messaggi WM_COMMAND a una funzione di gestione, in base all'identificatore della voce di menu, controllo, o dei tasti di scelta rapida. |
|
Esegue il mapping di un messaggio WM_NOTIFY a una funzione di gestione, in base al codice di notifica e all'identificatore di controllo. |
|
Esegue il mapping di un messaggio WM_NOTIFY a una funzione di gestione, in base all'identificatore di controllo. |
|
Esegue il mapping di un messaggio WM_NOTIFY a una funzione di gestione, in base al codice della notifica. |
|
Esegue il mapping di un intervallo contiguo dei messaggi WM_NOTIFY a una funzione di gestione, in base all'identificatore di controllo. |
Le macro seguenti i messaggi a un'altra mappa messaggi.Questo processo è denominato "concatenare."
Macro |
Descrizione |
---|---|
Catene alla mappa messaggi predefinita nella classe base. |
|
Catene alla mappa messaggi predefinita in un membro dati della classe. |
|
Catene a una mappa messaggi alternativa nella classe base. |
|
Catene a una mappa messaggi alternativa in un membro dati della classe. |
|
Catene alla mappa messaggi predefinita in un'altra classe in fase di esecuzione. |
Le macro seguenti i messaggi riprodotti "" dalla finestra padre.Ad esempio, il controllo in genere invia i messaggi di notifica alla finestra padre per elaborare, ma la finestra padre può riflettere il messaggio del controllo.
Macro |
Descrizione |
---|---|
Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base al codice di notifica e all'identificatore della voce di menu, controllo, o dei tasti di scelta rapida. |
|
Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base all'identificatore della voce di menu, controllo, o dei tasti di scelta rapida. |
|
Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base al codice della notifica. |
|
Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base a un intervallo contiguo degli identificatori del controllo. |
|
Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base al codice di notifica e un intervallo contiguo degli identificatori del controllo. |
|
Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base al codice di notifica e all'identificatore di controllo. |
|
Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base all'identificatore di controllo. |
|
Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base al codice della notifica. |
|
Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base a un intervallo contiguo degli identificatori del controllo. |
|
Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base al codice di notifica e un intervallo contiguo degli identificatori del controllo. |
Esempio
class CMyExtWindow : public CMyBaseWindow
{
public:
BEGIN_MSG_MAP(CMyExtWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
Quando un oggetto CMyExtWindow riceve un messaggio WM_PAINT, il messaggio viene diretto a CMyExtWindow::OnPaint per l'effettiva elaborazione.Se OnPaint indica il messaggio richiede un'ulteriore elaborazione, il messaggio verrà indirizzato alla mappa messaggi predefinita in CMyBaseWindow.
Oltre alla mappa messaggi predefinita, è possibile definire una mappa messaggi alternativa a ALT_MSG_MAP.Inizia sempre una mappa messaggi con BEGIN_MSG_MAP.È quindi possibile dichiarare le mappe messaggi alternate successive.Nell'esempio seguente viene illustrata la mappa messaggi predefinita e una mappa messaggi alternativa, ogni una funzione di gestione contenitore:
BEGIN_MSG_MAP(CMyOneAltClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
Nell'esempio riportato di seguito due mappe messaggi alternate.La mappa messaggi predefinita è vuota.
BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()
La macro END_MSG_MAP contrassegna la fine della mappa messaggi.Si noti che è sempre esattamente un'istanza BEGIN_MSG_MAP e END_MSG_MAP.
Per ulteriori informazioni sull'utilizzo delle mappe dei messaggi in ATL, vedere Mappe messaggi.
Requisiti
Header: atlwin.h