Condividi tramite


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

MESSAGE_HANDLER

Esegue il mapping di un messaggio di Windows a una funzione di gestione.

MESSAGE_RANGE_HANDLER

Esegue il mapping di un intervallo contiguo dei messaggi di Windows a una funzione di gestione.

COMMAND_HANDLER

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.

COMMAND_ID_HANDLER

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.

COMMAND_CODE_HANDLER

Esegue il mapping di un messaggio WM_COMMAND a una funzione di gestione, in base al codice della notifica.

COMMAND_RANGE_HANDLER

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.

NOTIFY_HANDLER

Esegue il mapping di un messaggio WM_NOTIFY a una funzione di gestione, in base al codice di notifica e all'identificatore di controllo.

NOTIFY_ID_HANDLER

Esegue il mapping di un messaggio WM_NOTIFY a una funzione di gestione, in base all'identificatore di controllo.

NOTIFY_CODE_HANDLER

Esegue il mapping di un messaggio WM_NOTIFY a una funzione di gestione, in base al codice della notifica.

NOTIFY_RANGE_HANDLER

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

CHAIN_MSG_MAP

Catene alla mappa messaggi predefinita nella classe base.

CHAIN_MSG_MAP_MEMBER

Catene alla mappa messaggi predefinita in un membro dati della classe.

CHAIN_MSG_MAP_ALT

Catene a una mappa messaggi alternativa nella classe base.

CHAIN_MSG_MAP_ALT_MEMBER

Catene a una mappa messaggi alternativa in un membro dati della classe.

CHAIN_MSG_MAP_DYNAMIC

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

REFLECTED_COMMAND_HANDLER

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.

REFLECTED_COMMAND_ID_HANDLER

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.

REFLECTED_COMMAND_CODE_HANDLER

Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base al codice della notifica.

REFLECTED_COMMAND_RANGE_HANDLER

Esegue il mapping di un messaggio riprodotto WM_COMMAND a una funzione di gestione, in base a un intervallo contiguo degli identificatori del controllo.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

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.

REFLECTED_NOTIFY_HANDLER

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.

REFLECTED_NOTIFY_ID_HANDLER

Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base all'identificatore di controllo.

REFLECTED_NOTIFY_CODE_HANDLER

Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base al codice della notifica.

REFLECTED_NOTIFY_RANGE_HANDLER

Esegue il mapping di un messaggio riprodotto WM_NOTIFY a una funzione di gestione, in base a un intervallo contiguo degli identificatori del controllo.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

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

Vedere anche

Riferimenti

Classe di CMessageMap

Classe di CDynamicChain

Altre risorse

Macro della mappa messaggi (ATL)

Macro ATL