класс CDynamicChain
CDynamicChain управляет коллекцией схемы сообщений, что позволяет Windows сообщение быть направлено, во время выполнения, для другого объекта в схеме сообщений.
Чтобы добавить поддержку для динамического связывания схемы сообщений, выполните следующие действия:
Например Предположим, что класс определяется следующим:
класс CMyWindow: общественного CDynamicChain,...
{
общественности:
nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
/ / динамически цепные по умолчанию
/ / сообщение карту в другой объект
CHAIN_MSG_MAP_DYNAMIC(1313)
/ / «1313» идентифицирует объект
/ / и схеме сообщений, которая будет
/ / Цепные для. определение «1313»
/ / через метод SetChainEntry
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
};
Клиент затем вызываетCMyWindow::SetChainEntry
/ / myCtl — это объект CMyWindow
myCtl.SetCh&ainEntry (1313, amp; chainedObj);
где chainedObj — это связанный объект и является экземпляром класса, производного от CMessageMap. Теперь если myCtl получает сообщение, которое не обрабатывается OnPaint или OnSetFocus , процедура окна направляет сообщение для chainedObj по схеме сообщений по умолчанию.
Для получения дополнительных сведений о схеме сообщений цепочки увидеть Сообщение карты в статье "Окно классов ATL."
# include lt;atlwin.h>
См. также CWindowImpl