Aracılığıyla paylaş


CDynamicChain sınıfı

Bu sınıf dinamik ileti haritaları zincirleme destekleyici yöntemler sağlar.

Önemli notÖnemli

Bu sınıf ve üyeleri, Windows çalışma zamanında yürütmek uygulamalarda kullanılamaz.

class CDynamicChain

Üyeler

kxaxdc7s.collapse_all(tr-tr,VS.110).gifOrtak Oluşturucusu

Ad

Description

CDynamicChain::CDynamicChain

Oluşturucu.

CDynamicChain:: ~ CDynamicChain

Yıkıcı.

kxaxdc7s.collapse_all(tr-tr,VS.110).gifPublic yöntemler

Ad

Description

CDynamicChain::CallChain

Windows ileti başka bir nesnenin ileti eşleme için yönlendirir.

CDynamicChain::RemoveChainEntry

İleti eşleme girdisini koleksiyonundan kaldırır.

CDynamicChain::SetChainEntry

İleti eşleme girdisini derlemesine ekler veya varolan bir girişi değiştirir.

Notlar

CDynamicChainbir Windows ileti başka bir nesnenin ileti eşleme için çalışma zamanında yönlendirilmesine etkinleştirme iletisi eşlemeleri topluluğu yönetir.

Dinamik zincir ileti haritaları için destek eklemek için aşağıdakileri yapın:

  • Kendi sınıfından türeyen CDynamicChain.İleti eşlemesindeki belirtmek CHAIN_MSG_MAP_DYNAMIC başka bir nesnenin varsayılan ileti eşleme zinciri makro.

  • Gelen zincirleme yapmak istediğiniz her sınıfı CMessageMap.CMessageMapbir nesneyi diğer nesnelere kendi ileti harita göstermek izin verir.

  • Call CDynamicChain::SetChainEntry zincire nesnesi ve ileti eşlemek istediğinizi tanımlamak için.

Örneğin, sınıfınızın şu şekilde tanımlanan varsayalım:

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

İstemci daha sonra çağırır CMyWindow::SetChainEntry:

myCtl.SetChainEntry(1313, &chainedObj);

Burada chainedObj zincirleme nesnesidir ve türetilen sınıfının bir örneği olan CMessageMap.Şimdi, myCtl tarafından işlenmediğini bir ileti alır OnPaint veya OnSetFocus, pencere yordamı için ileti yönlendiren chainedObj's varsayılan ileti eşleme.

İleti eşleme zincirleme hakkında daha fazla bilgi için bkz: İleti haritalar makalede "atl pencere sınıflarına."

Gereksinimler

Başlık: atlwin.h

Ayrıca bkz.

Başvuru

CWindowImpl sınıfı

Diğer Kaynaklar

atl sınıfına genel bakış