Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс предоставляет методы для создания модального или безрежимного диалогового окна.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
template <class T,
class TBase = CWindow>
class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT<TBase>
Параметры
T
Класс, производный от CDialogImpl.
TBase
Базовый класс нового класса. Базовый класс по умолчанию — 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 |
Требования
Заголовок: 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
Указывает на объект или 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 устанавливается в качестве процедуры диалогового окна и дальнейшие вызовы отправляются туда.