Freigeben über


CDynamicChain Class

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

CDynamicChain::CDynamicChain

Der Konstruktor.

CDynamicChain::~CDynamicChain

Der Destruktor.

Öffentliche Methoden

Name

Beschreibung

CDynamicChain::CallChain

Verweist auf eine Windows-Meldung auf die Meldungszuordnung eines anderen Objekts.

CDynamicChain::RemoveChainEntry

Entfernt einen Eintrag in der Meldungszuordnung aus der Auflistung.

CDynamicChain::SetChainEntry

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

Siehe auch

Referenz

CWindowImpl Class

Weitere Ressourcen

ATL Class Overview