다음을 통해 공유


CDialogImpl 클래스

이 클래스는 모달 또는 모덜리스 대화 상자를 만드는 메서드를 제공합니다.

Important

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

구문

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

매개 변수

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

TBase
새 클래스의 기본 클래스입니다. 기본 기본 클래스는 CWindow입니다.

멤버

메서드

함수 설명
만들기 모덜리스 대화 상자를 만듭니다.
DestroyWindow 모덜리스 대화 상자를 제거합니다.
DoModal 모달 대화 상자를 만듭니다.
EndDialog 모달 대화 상자를 삭제합니다.

CDialogImplBaseT 메서드

함수 설명
GetDialogProc 현재 대화 상자 프로시저를 반환합니다.
MapDialogRect 지정된 사각형의 대화 상자 단위를 화면 단위(픽셀)에 매핑합니다.
OnFinalMessage 마지막 메시지를 받은 후 호출되며 일반적으로 WM_NCDESTROY.

정적 함수

함수 설명
DialogProc 대화 상자로 전송된 메시지를 처리합니다.
StartDialogProc 대화 상자로 전송된 메시지를 처리하기 위해 첫 번째 메시지가 수신될 때 호출됩니다.

설명

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

기본 클래스 소멸자를 ~CWindowImplRoot 통해 개체를 삭제하기 전에 창이 사라지도록 합니다.

CDialogImplCDialogImplBaseT에서 파생되며, 이 파생은 .에서 CWindowImplRoot파생됩니다.

참고 항목

클래스는 IDD 대화 상자 템플릿 리소스 ID를 지정하는 멤버를 정의해야 합니다. 예를 들어 ATL 프로젝트 마법사는 클래스에 다음 줄을 자동으로 추가합니다.

enum { IDD = IDD_MYDLG };

마법사의 이름 페이지에 입력된 짧은 이름은 <a0/>입니다.

에 대한 자세한 내용은 참조
컨트롤 만들기 ATL 자습서
ATL에서 대화 상자 사용 ATL 창 클래스
ATL 프로젝트 마법사 ATL 프로젝트 만들기
대화 상자 Windows SDK의 대화 상자 및 후속 항목

요구 사항

헤더: atlwin.h

CDialogImpl::Create

모덜리스 대화 상자를 만듭니다.

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

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

매개 변수

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

RECT& rect [in] 대화 상자의 크기와 위치를 지정하는 RECT 구조체입니다.

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

Return Value

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

설명

이 대화 상자는 개체에 CDialogImpl 자동으로 연결됩니다. 모달 대화 상자를 만들려면 DoModal을 호출합니다. 위의 두 번째 재정의는 CComControl에서만 사용됩니다.

CDialogImpl::D estroyWindow

모덜리스 대화 상자를 제거합니다.

BOOL DestroyWindow();

Return Value

대화 상자가 성공적으로 제거되었으면 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

대화 상자가 성공적으로 제거되면 TRUE를 반환합니다. 그렇지 않으면 FALSE입니다.

CDialogImpl::D ialogProc

이 정적 함수는 대화 상자 프로시저를 구현합니다.

static LRESULT CALLBACK DialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

매개 변수

hWnd
[in] 대화 상자의 핸들입니다.

uMsg
[in] 대화 상자로 전송된 메시지입니다.

wParam
[in] 추가 메시지 관련 정보입니다.

lParam
[in] 추가 메시지 관련 정보입니다.

Return Value

메시지가 처리되면 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

DialogProc 는 기본 메시지 맵을 사용하여 메시지를 적절한 처리기로 전달합니다.

메시지를 처리하기 위한 다른 메커니즘을 제공하도록 재정 DialogProc 의할 수 있습니다.

CDialogImpl::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입니다.

설명

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

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

CDialogImpl::EndDialog

모달 대화 상자를 삭제합니다.

BOOL EndDialog(int nRetCode);

매개 변수

nRetCode
[in] CDialogImpl::D oModal에서 반환 할 값입니다.

Return Value

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

설명

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

참고 항목

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

CDialogImpl::GetDialogProc

현재 대화 상자 프로시저를 반환 DialogProc합니다.

virtual WNDPROC GetDialogProc();

Return Value

현재 대화 상자 프로시저입니다.

설명

대화 상자를 사용자 고유의 프로시저로 바꾸려면 이 메서드를 재정의합니다.

CDialogImpl::MapDialogRect

지정된 사각형의 대화 상자 단위를 화면 단위(픽셀)로 변환(지도)합니다.

BOOL MapDialogRect(LPRECT lpRect);

매개 변수

lpRect
업데이트 영역을 둘러싸 CRect 는 업데이트의 클라이언트 좌표를 받는 개체 또는 RECT 구조를 가리킵니다.

Return Value

업데이트가 성공하면 0이 아닌 경우 업데이트가 실패하면 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 함수는 지정된 RECT 구조체의 좌표를 변환된 좌표로 바꿉니다. 이 좌표를 사용하여 대화 상자를 만들거나 대화 상자 내에 컨트롤을 배치할 수 있습니다.

CDialogImpl::OnFinalMessage

마지막 메시지(일반적으로)를 받은 후 호출됩니다 WM_NCDESTROY.

virtual void OnFinalMessage(HWND hWnd);

매개 변수

hWnd
[in] 제거되는 창에 대한 핸들입니다.

설명

창이 파기될 때 개체를 자동으로 삭제하려는 경우 삭제를 호출할 수 있습니다. 여기를 참조하세요.

CDialogImpl::StartDialogProc

첫 번째 메시지가 수신될 때 대화 상자로 전송된 메시지를 처리하기 위해 한 번만 호출됩니다.

static LRESULT CALLBACK StartDialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

매개 변수

hWnd
[in] 대화 상자의 핸들입니다.

uMsg
[in] 대화 상자로 전송된 메시지입니다.

wParam
[in] 추가 메시지 관련 정보입니다.

lParam
[in] 추가 메시지 관련 정보입니다.

Return Value

창 프로시저입니다.

설명

초기 호출 StartDialogProc후 대화 DialogProc 프로시저로 설정되고 추가 호출이 해당 프로시저로 이동합니다.

참고 항목

BEGIN_MSG_MAP
클래스 개요