Класс CDialogImpl

Этот класс предоставляет методы для создания модального или безрежимного диалогового окна.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

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

Параметры

T
Класс, производный от CDialogImpl.

ТБ ase
Базовый класс нового класса. Базовый класс по умолчанию — CWindow.

Участники

Методы

Function Description
Создание Создает диалоговое окно без режима.
Destroywindow Удаляет диалоговое окно без режима.
Domodal Создает модальное диалоговое окно.
EndDialog Уничтожает модальное диалоговое окно.

Методы CDialogImplBaseT

Function Description
GetDialogProc Возвращает текущую процедуру диалогового окна.
MapDialogRect Карты блоки диалогового окна указанного прямоугольника в единицы экрана (пиксели).
OnFinalMessage Вызывается после получения последнего сообщения, обычно WM_NCDESTROY.

Статические функции

Function Description
DialogProc Обрабатывает сообщения, отправленные в диалоговое окно.
StartDialogProc Вызывается при получении первого сообщения для обработки сообщений, отправленных в диалоговое окно.

Замечания

С помощью CDialogImpl этого диалогового окна можно создать модальное или безрежимное диалоговое окно. CDialogImpl предоставляет процедуру диалогового окна, которая использует карту сообщений по умолчанию для направления сообщений в соответствующие обработчики.

Деструктор ~CWindowImplRoot базового класса гарантирует, что окно исчезнет перед уничтожением объекта.

CDialogImpl производный от CDialogImplBaseT, от которого, в свою очередь, является производным от CWindowImplRoot.

Примечание.

Класс должен определить элемент, указывающий IDD идентификатор ресурса шаблона диалогового окна. Например, мастер проектов ATL автоматически добавляет в класс следующую строку:

enum { IDD = IDD_MYDLG };

где MyDlg введите короткое имя на странице "Имена" мастера.

Дополнительные сведения Смотрите
Создание элементов управления Учебник по ATL
Использование диалоговых окон в ATL Классы окон ATL
Мастер проектов ATL Создание проекта ATL
Диалоговые окна Диалоговые окна и последующие разделы пакета SDK для Windows

Requirements

Заголовок: 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] Указывает значение, которое нужно передать в диалоговое окно в параметре lParam сообщения WM_INITDIALOG.

Возвращаемое значение

Дескриптор созданного диалогового окна.

Замечания

Это диалоговое окно автоматически присоединяется к объекту CDialogImpl . Чтобы создать модальное диалоговое окно, вызовите DoModal. Второе переопределение выше используется только с CComControl.

CDialogImpl::D enostWindow

Удаляет диалоговое окно без режима.

BOOL DestroyWindow();

Возвращаемое значение

ЗНАЧЕНИЕ 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] Дополнительные сведения о сообщении.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если сообщение обрабатывается; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

DialogProc использует карту сообщений по умолчанию для направления сообщений соответствующим обработчикам.

Можно переопределить DialogProc для предоставления другого механизма обработки сообщений.

CDialogImpl::D oModal

Создает модальное диалоговое окно.

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

Параметры

hWndParent
[in] Дескриптор окна владельца. Значение по умолчанию — возвращаемое значение функции GetActiveWindow Win32.

dwInitParam
[in] Указывает значение, которое нужно передать в диалоговое окно в параметре lParam сообщения WM_INITDIALOG.

Возвращаемое значение

В случае успешного выполнения значение параметра nRetCode , указанного в вызове EndDialog. В противном случае –1.

Замечания

Это диалоговое окно автоматически присоединяется к объекту CDialogImpl .

Чтобы создать диалоговое окно без режима, вызовите команду Create.

CDialogImpl::EndDialog

Уничтожает модальное диалоговое окно.

BOOL EndDialog(int nRetCode);

Параметры

nRetCode
[in] Значение, возвращаемое CDialogImpl::D oModal.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если диалоговое окно уничтожено; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

EndDialog необходимо вызвать с помощью процедуры диалога. После уничтожения диалогового окна Windows использует значение nRetCode в качестве возвращаемого значения DoModal, для которого было создано диалоговое окно.

Примечание.

Не вызывайте EndDialog диалоговое окно без режима. Вместо этого вызовите CWindow::D ewindow .

CDialogImpl::GetDialogProc

Возвращает DialogProcтекущую процедуру диалогового окна.

virtual WNDPROC GetDialogProc();

Возвращаемое значение

Текущая процедура диалогового окна.

Замечания

Переопределите этот метод, чтобы заменить процедуру диалога собственной.

CDialogImpl::MapDialogRect

Преобразует (сопоставляет) блоки диалогового окна указанного прямоугольника в единицы экрана (пиксели).

BOOL MapDialogRect(LPRECT lpRect);

Параметры

lpRect
Указывает на объект или структуру RECT, которая заключается в CRect получении клиентских координат обновления, включающего регион обновления.

Возвращаемое значение

Ненулевое значение, если обновление успешно выполнено; Значение 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] Дополнительные сведения о сообщении.

Возвращаемое значение

Процедура окна.

Замечания

После первоначального вызова StartDialogProcDialogProc устанавливается в качестве процедуры диалогового окна и дальнейшие вызовы отправляются туда.

См. также

BEGIN_MSG_MAP
Общие сведения о классе