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
통해 개체를 삭제하기 전에 창이 사라지도록 합니다.
CDialogImpl
CDialogImplBaseT
에서 파생되며, 이 파생은 .에서 CWindowImplRoot
파생됩니다.
참고 항목
클래스는 IDD
대화 상자 템플릿 리소스 ID를 지정하는 멤버를 정의해야 합니다. 예를 들어 ATL 프로젝트 마법사는 클래스에 다음 줄을 자동으로 추가합니다.
enum { IDD = IDD_MYDLG };
마법사의 이름 페이지에 입력된 짧은 이름은 <
에 대한 자세한 내용은 | 참조 |
---|---|
컨트롤 만들기 | 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
프로시저로 설정되고 추가 호출이 해당 프로시저로 이동합니다.