klasa CDynamicChain
CDynamicChain zarządza kolekcją wiadomości map, umożliwiające wiadomość Windows kierować w czasie wykonywania, do innego obiektu wiadomości mapę.
Aby dodać obsługę dla dynamicznych łańcuchowym mapy wiadomości, wykonaj następujące czynności:
Na przykład załóżmy, że klasa jest zdefiniowana w następujący sposób:
klasa CMyWindow: CDynamicChain publicznych,...
{
publiczne:
nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
/ / dynamicznie łańcucha domyślne
/ / wiadomości mapę w innym obiekcie
CHAIN_MSG_MAP_DYNAMIC(1313)
/ / "1313" identyfikuje obiekt
/ / i mapę komunikat, który będzie
/ / chained to. "1313" jest zdefiniowany
/ / za pomocą metody SetChainEntry
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
};
Następnie wywołuje klientaCMyWindow::SetChainEntry
/ / myCtl jest obiektem CMyWindow
myCtl.SetCh&ainEntry (1313 amp; chainedObj);
gdzie chainedObj
jest obiektem łańcuchowej i jest instancją klasy pochodzące z CMessageMap. Teraz Jeśli myCtl
odbierze komunikat, który nie jest obsługiwany przez OnPaint
lub OnSetFocus
, procedurę okna kieruje wiadomość do chainedObj
na domyślny komunikat mapę.
Więcej informacji na temat wiadomości mapę łańcuchowym można znaleźć Wiadomość mapy w artykule "ATL okno klasy."
# include lt;atlwin.h>
Zobacz też CWindowImpl