CDynamicChain

classe CDynamicChain

CDynamicChain gerencia uma coleção de mapas de mensagem, permitindo que uma mensagem do Windows a ser dirigido, em tempo de execução, ao mapa da mensagem outro objeto.

Para adicionar suporte dinâmico encadeamento de mapas de mensagem, faça o seguinte:

Por exemplo, suponha que sua classe é definida da seguinte forma:

classe CMyWindow: CDynamicChain público,...
{
público:
 nbsp; ...

BEGIN_MSG_MAP(CMyWindow)
      MESSAGE_HANDLER (WM_PAINT, OnPaint)
      MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
      / / dinamicamente cadeia para o padrão
      / / mensagem mapa em outro objeto
      CHAIN_MSG_MAP_DYNAMIC(1313)
                / / '1313' identifica o objeto
                / / e o mapa da mensagem que será
                / / encadeada para. '1313' é definido
                / / através do método SetChainEntry
   END_MSG_MAP()

LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   { ... }

LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   { ... }

};

Em seguida, chama o clienteCMyWindow::SetChainEntry

/ / myCtl é um objeto de CMyWindow
myCtl.SetCh&ainEntry (1313, amp; chainedObj);

onde chainedObj é o objeto encadeado e é uma instância de uma classe derivada CMessageMap. Agora, se myCtl recebe uma mensagem que não é tratada por OnPaint ou OnSetFocus , o procedimento janela dirige a mensagem a chainedObj do mapa da mensagem padrão.

Para obter mais informações sobre o mapa de mensagem encadeamento, consulte Mensagem mapas no artigo "Classes de janela do ATL".

# include lt;atlwin.h>

Membros de classe

Co&nsulte tambémnbsp;CWindowImpl

Index