CDynamicChain sınıfı
Bu sınıf dinamik ileti haritaları zincirleme destekleyici yöntemler sağlar.
Önemli |
---|
Bu sınıf ve üyeleri, Windows çalışma zamanında yürütmek uygulamalarda kullanılamaz. |
class CDynamicChain
Üyeler
Ortak Oluşturucusu
Ad |
Description |
---|---|
Oluşturucu. |
|
Yıkıcı. |
Public yöntemler
Ad |
Description |
---|---|
Windows ileti başka bir nesnenin ileti eşleme için yönlendirir. |
|
İleti eşleme girdisini koleksiyonundan kaldırır. |
|
İ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