Třída CDynamicChain
Tato třída poskytuje metody na podporu dynamického zřetězení zprávy mapy.
Dů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 |
---|---|
Konstruktor. |
|
Destruktoru. |
Veřejné metody
Název |
Description |
---|---|
Směruje zprávy systému Windows jiný objekt mapy zprávy. |
|
Odebere položku mapy zprávy z kolekce. |
|
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