다음을 통해 공유


CAxDialogImpl 클래스

이 클래스는 ActiveX 컨트롤을 호스트하는 대화 상자(모달 또는 모덜리스)를 구현합니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

template <class T, class TBase = CWindow>
class ATL_NO_VTABLE CAxDialogImpl : public CDialogImplBaseT<TBase>

매개 변수

T
에서 파생된 CAxDialogImpl클래스입니다.

TBase
에 대한 기본 창 클래스입니다 CDialogImplBaseT.

멤버

공용 메서드

이름 설명
CAxDialogImpl::AdviseSinkMap 개체의 싱크 맵 이벤트 맵에 있는 모든 항목을 조언하거나 취소하려면 이 메서드를 호출합니다.
CAxDialogImpl::Create 이 메서드를 호출하여 모덜리스 대화 상자를 만듭니다.
CAxDialogImpl::D estroyWindow 모덜리스 대화 상자를 삭제하려면 이 메서드를 호출합니다.
CAxDialogImpl::D oModal 모달 대화 상자를 만들려면 이 메서드를 호출합니다.
CAxDialogImpl::EndDialog 모달 대화 상자를 삭제하려면 이 메서드를 호출합니다.
CAxDialogImpl::GetDialogProc 이 메서드를 호출하여 콜백 함수에 대한 포인터를 DialogProc 가져옵니다.
CAxDialogImpl::GetIDD 이 메서드를 호출하여 대화 상자 템플릿 리소스 ID를 가져옵니다.
CAxDialogImpl::IsDialogMessage 이 메서드를 호출하여 메시지가 이 대화 상자에 적합한지 여부를 확인하고 메시지인 경우 메시지를 처리합니다.

보호된 데이터 멤버

속성 설명
CAxDialogImpl::m_bModal 디버그 빌드에만 존재하며 대화 상자가 모달인 경우 true로 설정된 변수입니다.

설명

CAxDialogImpl 를 사용하면 모달 또는 모덜리스 대화 상자를 만들 수 있습니다. CAxDialogImpl 는 기본 메시지 맵을 사용하여 메시지를 적절한 처리기로 보내는 대화 상자 프로시저를 제공합니다.

CAxDialogImpl는 TBase(CDialogImplBaseT기본적으로CWindow) 및 CMessageMap.에서 파생되는 파생됩니다.

클래스는 대화 상자 템플릿 리소스 ID를 지정하는 IDD 멤버를 정의해야 합니다. 예를 들어 클래스 추가 대화 상자를 사용하여 ATL 대화 상자 개체를 추가하면 클래스에 다음 줄이 자동으로 추가됩니다.

enum { IDD = IDD_MYDLG };

ATL 대화 상자 마법사에 입력된 짧은 이름은 다음과 MyDialog 입니다.

자세한 내용은 대화 상자 구현을 참조 하세요 .

모달 대화 상자에서 만든 CAxDialogImpl ActiveX 컨트롤은 가속기 키를 지원하지 않습니다. 만든 CAxDialogImpl대화 상자에서 가속기 키를 지원하려면 모덜리스 대화 상자를 만들고 사용자 고유의 메시지 루프를 사용하여 큐에서 메시지를 받은 후 CAxDialogImpl::IsDialogMessage를 사용하여 가속기 키를 처리합니다.

자세한 CAxDialogImpl내용은 ATL 컨트롤 포함 FAQ를 참조 하세요.

상속 계층 구조

CMessageMap

TBase

CWindowImplRoot

CDialogImplBaseT

CAxDialogImpl

요구 사항

헤더: atlwin.h

CAxDialogImpl::AdviseSinkMap

개체의 싱크 맵 이벤트 맵에 있는 모든 항목을 조언하거나 취소하려면 이 메서드를 호출합니다.

HRESULT AdviseSinkMap(bool bAdvise);

매개 변수

bAdvise
모든 싱크 항목이 권장되는 경우 true로 설정합니다. 모든 싱크 항목을 비지정해야 하는 경우 false입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CAxDialogImpl::Create

이 메서드를 호출하여 모덜리스 대화 상자를 만듭니다.

HWND Create(HWND hWndParent, LPARAM dwInitParam = NULL);
HWND Create(HWND hWndParent, RECT&, LPARAM dwInitParam = NULL);

매개 변수

hWndParent
[in] 소유자 창에 대한 핸들입니다.

dwInitParam
[in] WM_INITDIALOG 메시지의 lParam 매개 변수에 있는 대화 상자에 전달할 값을 지정합니다.

RECT&
이 매개 변수는 사용되지 않습니다. 이 매개 변수는 .에 의해 CComControl전달됩니다.

Return Value

새로 만든 대화 상자의 핸들입니다.

설명

이 대화 상자는 개체에 CAxDialogImpl 자동으로 연결됩니다. 모달 대화 상자를 만들려면 DoModal을 호출합니다.

두 번째 재정의는 CComControl에서 대화 상자를 사용할 수 있도록만 제공됩니다.

CAxDialogImpl::D estroyWindow

모덜리스 대화 상자를 삭제하려면 이 메서드를 호출합니다.

BOOL DestroyWindow();

Return Value

창이 성공적으로 제거되면 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

모달 대화 상자를 삭제하도록 호출 DestroyWindow 하지 마세요. 대신 EndDialog를 호출합니다.

CAxDialogImpl::D oModal

모달 대화 상자를 만들려면 이 메서드를 호출합니다.

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

매개 변수

hWndParent
[in] 소유자 창에 대한 핸들입니다. 기본값은 GetActiveWindow Win32 함수의 반환 값입니다.

dwInitParam
[in] WM_INITDIALOG 메시지의 lParam 매개 변수에 있는 대화 상자에 전달할 값을 지정합니다.

Return Value

성공하면 EndDialog 호출에 지정된 nRetCode 매개 변수 값이고, 그렇지 않으면 -1입니다.

설명

이 대화 상자는 개체에 CAxDialogImpl 자동으로 연결됩니다.

모덜리스 대화 상자를 만들려면 만들기를 호출 합니다.

CAxDialogImpl::EndDialog

모달 대화 상자를 삭제하려면 이 메서드를 호출합니다.

BOOL EndDialog(int nRetCode);

매개 변수

nRetCode
[in] DoModal에서 반환할 값입니다.

Return Value

대화 상자가 제거되면 TRUE이고, 그렇지 않으면 FALSE입니다.

설명

EndDialog 는 대화 상자 프로시저를 통해 호출되어야 합니다. 대화 상자가 제거되면 Windows는 nRetCode 값을 반환 값DoModal으로 사용하여 대화 상자를 만들었습니다.

참고 항목

모덜리스 대화 상자를 삭제하도록 호출 EndDialog 하지 마세요. 대신 DestroyWindow를 호출합니다.

CAxDialogImpl::GetDialogProc

이 메서드를 호출하여 콜백 함수에 대한 포인터를 DialogProc 가져옵니다.

virtual DLGPROC GetDialogProc();

Return Value

콜백 함수에 대한 포인터를 DialogProc 반환합니다.

설명

DialogProc 함수는 애플리케이션에서 정의한 콜백 함수입니다.

CAxDialogImpl::GetIDD

이 메서드를 호출하여 대화 상자 템플릿 리소스 ID를 가져옵니다.

int GetIDD();

Return Value

대화 상자 템플릿 리소스 ID를 반환합니다.

CAxDialogImpl::IsDialogMessage

이 메서드를 호출하여 메시지가 이 대화 상자에 적합한지 여부를 확인하고 메시지인 경우 메시지를 처리합니다.

BOOL IsDialogMessage(LPMSG pMsg);

매개 변수

pMsg
확인할 메시지를 포함하는 MSG 구조체에 대한 포인터입니다.

Return Value

메시지가 처리되면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

설명

이 메서드는 메시지 루프 내에서 호출할 수 있습니다.

CAxDialogImpl::m_bModal

디버그 빌드에만 존재하며 대화 상자가 모달인 경우 true로 설정된 변수입니다.

bool m_bModal;

참고 항목

CDialogImpl 클래스
클래스 개요