CDynamicChain 클래스
이 클래스의 메시지 맵을 동적 체인을 지 원하는 메서드를 제공 합니다.
중요 |
---|
런타임에서 Windows를 실행 하는 응용 프로그램에서이 클래스와 해당 멤버를 사용할 수 없습니다. |
class CDynamicChain
Members
Public 생성자
Name |
설명 |
---|---|
생성자입니다. |
|
소멸자 |
Public 메서드
Name |
설명 |
---|---|
다른 개체의 메시지 맵에 Windows 메시지를 보냅니다. |
|
메시지 맵 항목 컬렉션에서 제거합니다. |
|
메시지 맵 엔트리를 컬렉션에 추가 하거나 기존 항목을 수정 합니다. |
설명
CDynamicChain컬렉션의 개체의 메시지 맵에 런타임에 전달 하는 Windows 메시지를 사용 하면 메시지 맵 관리 합니다.
동적 메시지 맵을의 체인에 대 한 지원을 추가 하려면 다음과 같이 하십시오.
파생 클래스에서 CDynamicChain.메시지 맵에 지정 된 CHAIN_MSG_MAP_DYNAMIC 연결할 개체의 기본 메시지 맵 매크로.
연결 하려는 모든 클래스 파생 CMessageMap.CMessageMap해당 메시지 맵을 다른 개체를 노출 하는 개체 수 있습니다.
호출 CDynamicChain::SetChainEntry 개체와 메시지 맵을 체인으로 연결 하려는 식별 합니다.
예를 들어, 클래스는 다음과 같이 정의 되어 있다고 가정 합니다.
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;
}
};
그런 다음 클라이언트 호출 CMyWindow::SetChainEntry.
myCtl.SetChainEntry(1313, &chainedObj);
위치 chainedObj 체인으로 연결 된 개체 및 파생 된 클래스의 인스턴스인 CMessageMap.이제 경우 myCtl 에서 처리 되지 않은 메시지가 OnPaint 또는 OnSetFocus, 창 프로시저에 보낼 chainedObj의 기본 메시지 맵.
메시지 맵 체인에 대 한 자세한 내용은 참조 하십시오. 메시지 맵 의 문서 "ATL 창 클래스"
요구 사항
헤더: atlwin.h