Udostępnij za pośrednictwem


Klasa CDynamicChain

Ta klasa zapewnia metody obsługi dynamicznego łańcuchowym mapy wiadomości.

Ważna uwagaWażne

W aplikacjach, które są wykonywane w Windows Runtime nie można użyć tej klasy i jej członków.

class CDynamicChain

Członkowie

Publiczne konstruktory

Nazwa

Opis

CDynamicChain::CDynamicChain

Konstruktor.

CDynamicChain:: ~ CDynamicChain

Destruktor.

Metody publiczne

Nazwa

Opis

CDynamicChain::CallChain

Kieruje komunikatu systemu Windows do innego obiektu mapy wiadomości.

CDynamicChain::RemoveChainEntry

Usuwa wpis mapy komunikatu z kolekcji.

CDynamicChain::SetChainEntry

Dodaje wpis mapy wiadomość do zbierania lub modyfikuje istniejący wpis.

Uwagi

CDynamicChainZarządza kolekcją mapy wiadomości, włączania komunikatu systemu Windows będą kierowane w czasie wykonywania do innego obiektu mapy wiadomości.

Aby dodać obsługę dynamicznego łańcuchowym mapy wiadomości, wykonaj następujące czynności:

  • Pochodzić od klasy CDynamicChain.Na mapie wiadomości określ CHAIN_MSG_MAP_DYNAMIC makro do łańcucha do innego obiektu domyślny komunikat mapy.

  • Klasę, co chcesz łańcucha z CMessageMap.CMessageMapUmożliwia obiektu narazić mapy jego wiadomości do innych obiektów.

  • Wywołanie CDynamicChain::SetChainEntry do określenia, na które obiekt i których wiadomości mapę użytkownik chce łańcucha.

Na przykład załóżmy, że klasa jest określone następująco:

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;
   }
};

Wywołuje klienta CMyWindow::SetChainEntry:

myCtl.SetChainEntry(1313, &chainedObj);

gdy chainedObj jest obiektem łańcuchowej i jest instancją klasy pochodzącej od CMessageMap.Teraz Jeśli myCtl odbiera komunikat, który nie jest obsługiwany przez OnPaint lub OnSetFocus, procedury okna kieruje wiadomość do chainedObj's domyślną mapę wiadomości.

Aby uzyskać więcej informacji na temat łańcuchowym mapę wiadomości, zobacz Mapy wiadomości w artykule "ATL okna klasy".

Wymagania

Nagłówek: atlwin.h

Zobacz też

Informacje

Klasa CWindowImpl

Inne zasoby

Omówienie klasy ATL