CHAIN_MSG_MAP
Definisce una voce in una mappa dei messaggi.
CHAIN_MSG_MAP( theChainClass )
Parametri
- theChainClass
[in] il nome della classe base che contiene la mappa messaggi.
Note
CHAIN_MSG_MAP indirizzare i messaggi a una mappa messaggi predefinita della classe base (dichiarata con BEGIN_MSG_MAP).Per indirizzare i messaggi a una mappa messaggi alternativa la classe base (dichiarata con ALT_MSG_MAP), utilizzare CHAIN_MSG_MAP_ALT.
[!NOTA]
Inizia sempre una mappa messaggi con BEGIN_MSG_MAP.È quindi possibile dichiarare le mappe messaggi alternate successive con ALT_MSG_MAP.La macro END_MSG_MAP contrassegna la fine della mappa messaggi.Ogni mappa messaggi deve contenere esattamente un'istanza BEGIN_MSG_MAP e END_MSG_MAP.
Per ulteriori informazioni sull'utilizzo delle mappe dei messaggi in ATL, vedere Mappe messaggi.
Esempio
class CMyExtClass : public CMyBaseClass
{
public:
BEGIN_MSG_MAP(CMyExtClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(1)
// chain to first alternative message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map in CMyBaseClass
CHAIN_MSG_MAP_ALT(CMyBaseClass, 1)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnChar(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
In questo esempio viene illustrato quanto segue:
Se una routine della finestra utilizzano la mappa messaggi predefinita di CMyClass e OnPaint non gestisce un messaggio, il messaggio viene indirizzato alla mappa messaggi predefinita di CMyBaseClass per l'elaborazione.
Se una routine della finestra utilizzano la prima mappa messaggi alternativa in CMyClass, tutti i messaggi vengono indirizzati alla mappa messaggi predefinita di CMyBaseClass.
Se una routine della finestra utilizzano la mappa messaggi secondo tipo di CMyClass e OnChar non gestisce un messaggio, il messaggio viene indirizzato alla mappa messaggi alternativa specificata in CMyBaseClass.CMyBaseClass deve dichiarare questa mappa messaggi con ALT_MSG_MAP(1).
Requisiti
Header: atlwin.h