Sdílet prostřednictvím


Třída CDynamicChain

Tato třída poskytuje metody na podporu dynamického zřetězení zprávy mapy.

Důležitá poznámkaDůležité

Třídy a jejích členů nelze použít v aplikacích, které spustit v modulu Runtime v systému Windows.

class CDynamicChain

Členy

Veřejné konstruktory

Název

Description

CDynamicChain::CDynamicChain

Konstruktor.

CDynamicChain:: ~ CDynamicChain

Destruktoru.

Veřejné metody

Název

Description

CDynamicChain::CallChain

Směruje zprávy systému Windows jiný objekt mapy zprávy.

CDynamicChain::RemoveChainEntry

Odebere položku mapy zprávy z kolekce.

CDynamicChain::SetChainEntry

Přidá položku mapy zprávy do kolekce nebo upraví existující položky.

Poznámky

CDynamicChainSpravuje kolekci mapy zprávy, povolení přesměrovat běhu jiný objekt mapy zpráva zpráva systému Windows.

Přidat podporu pro dynamickou zřetězení zprávy mapy, postupujte takto:

  • Odvození třídy z CDynamicChain .V mapě zprávy zadat CHAIN_MSG_MAP_DYNAMIC makro řetěz jiný objekt výchozí zpráva mapy.

  • Odvození každé třídy chcete zřetězení z CMessageMap.CMessageMapumožňuje objekt, který chcete vystavit své zprávy mapy na jiné objekty.

  • Volání CDynamicChain::SetChainEntry které objekt a zpráv, které můžete mapovat chcete řetěz k identifikaci.

Předpokládejme například, že vaše třída je definována takto:

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

Klient potom zavolá CMyWindow::SetChainEntry :

myCtl.SetChainEntry(1313, &chainedObj);

kde chainedObj zřetězené objektu a je instancí třídy odvozené od CMessageMap .Nyní Pokud myCtl obdrží zprávu, která není zpracována OnPaint nebo OnSetFocus , okno postup směruje zprávy chainedObj na výchozí zpráva mapy.

Další informace o řetězení mapy zprávy naleznete v Zpráva mapy v článku "Třídy ATL okno."

Požadavky

Záhlaví: atlwin.h

Viz také

Referenční dokumentace

Třída CWindowImpl

Další zdroje

Přehled třídy ATL