CDynamicChain-Klasse
Diese Klasse stellt die Methoden, die die dynamischen Verketten von Meldungszuordnungen unterstützen.
Wichtig |
---|
Diese Klasse und ihre Member können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen. |
class CDynamicChain
Mitglieder
Öffentliche Konstruktoren
Name |
Beschreibung |
---|---|
Der Konstruktor. |
|
Der Destruktor. |
Öffentliche Methoden
Name |
Beschreibung |
---|---|
Verweist auf eine Windows-Meldung auf die Meldungszuordnung eines anderen Objekts. |
|
Entfernt einen Eintrag in der Meldungszuordnung aus der Auflistung. |
|
Fügt der Auflistung einen Eintrag in der Meldungszuordnung hinzu oder ändert einen vorhandenen Eintrag. |
Hinweise
CDynamicChain verwaltet eine Auflistung Meldungszuordnungen und ermöglicht eine zur Laufzeit auf die Meldungszuordnung eines anderen Objekts verwiesen werden Windows-Meldung.
Um Unterstützung für dynamische Verketten von Meldungszuordnungen hinzuzufügen, führen Sie Folgendes:
Leiten Sie die Klasse von CDynamicChain.In der Meldungszuordnung geben Sie das CHAIN_MSG_MAP_DYNAMIC-Makro auf, um der Standardmeldungszuordnung eines anderen Objekts zu verketten.
Leiten Sie jede Klasse, die an der CMessageMap verketten möchten.CMessageMap können Objekte, um seine Meldungszuordnungen anderen Objekten verfügbar zu machen.
Rufen Sie CDynamicChain::SetChainEntry auf, um zu ermitteln, auf die das und die Meldungszuordnung Sie verketten möchten.
Angenommen, die Klasse definiert wurde, wie folgt:
class CMyChainWnd : public CWindowImpl<CMyChainWnd>,
public CDynamicChain
{
public:
CMyChainWnd() {}
BEGIN_MSG_MAP(CMyChainWnd)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
// dynamically chain to the default
// message map in another object
CHAIN_MSG_MAP_DYNAMIC(1313)
// '1313' identifies the object
// and the message map that will be
// chained to. '1313' is defined
// through the SetChainEntry method
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
// Do some painting code
return 0;
}
LRESULT OnSetFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
Der Client ruft dann CMyWindow::SetChainEntry auf:
myCtl.SetChainEntry(1313, &chainedObj);
wobei chainedObj das verkettete Objekt ist und eine Instanz einer Klasse ist, die von CMessageMap abgeleitet wird.Jetzt myCtl wenn eine Nachricht empfängt, die nicht von OnPaint oder OnSetFocus bearbeitet wird, verweist die Fensterprozedur die Meldung auf die Standardmeldungszuordnung von chainedObj.
Weitere Informationen zu Meldungszuordnungsverketten, Meldungszuordnungen finden Sie im Artikel "ATL-Fensterklassen."
Anforderungen
Header: atlwin.h