Поделиться через


Класс CAxDialogImpl

Этот класс реализует диалоговое окно (модальное или без режима), в котором размещаются элементы ActiveX.

Важно!

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

Синтаксис

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

Параметры

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

ТБ ase
Базовый класс окна для CDialogImplBaseT.

Участники

Открытые методы

Имя Описание
CAxDialogImpl::AdviseSinkMap Вызовите этот метод, чтобы советовать или отменять все записи в карте событий карты приемника объекта.
CAxDialogImpl::Create Вызовите этот метод для создания диалогового окна без режима.
CAxDialogImpl::D enostWindow Вызовите этот метод, чтобы уничтожить диалоговое окно без режима.
CAxDialogImpl::D oModal Вызовите этот метод для создания модального диалогового окна.
CAxDialogImpl::EndDialog Вызовите этот метод для уничтожения модального диалогового окна.
CAxDialogImpl::GetDialogProc Вызовите этот метод, чтобы получить указатель на функцию обратного DialogProc вызова.
CAxDialogImpl::GetIDD Вызовите этот метод, чтобы получить идентификатор ресурса шаблона диалогового окна
CAxDialogImpl::IsDialogMessage Вызовите этот метод, чтобы определить, предназначено ли сообщение для этого диалогового окна и, если это так, обработать сообщение.

Защищенные члены данных

Имя Описание
CAxDialogImpl::m_bModal Переменная, которая существует только в отладочных сборках и имеет значение true, если диалоговое окно является модальным.

Замечания

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

CAxDialogImplпроизводный от CDialogImplBaseT, который, в свою очередь, является производным от ТБ ase (по умолчанию) CWindowи CMessageMap.

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

enum { IDD = IDD_MYDLG };

где MyDialog указано короткое имя , введенное в мастере диалоговых окон ATL.

Дополнительные сведения см . в разделе "Реализация диалогового окна ".

Обратите внимание, что элемент activeX в модальном диалоговом окне, созданном с CAxDialogImpl помощью клавиш акселератора, не поддерживается. Чтобы поддерживать клавиши акселератора в диалоговом окне, созданном с CAxDialogImplпомощью диалогового окна, создайте бессерверное диалоговое окно и, используя собственный цикл сообщений, используйте CAxDialogImpl::IsDialogMessage после получения сообщения из очереди для обработки ключа акселератора.

Дополнительные сведения см. в CAxDialogImplстатье atL Control Containment FAQ.

Иерархия наследования

CMessageMap

TBase

CWindowImplRoot

CDialogImplBaseT

CAxDialogImpl

Requirements

Заголовок: atlwin.h

CAxDialogImpl::AdviseSinkMap

Вызовите этот метод, чтобы советовать или отменять все записи в карте событий карты приемника объекта.

HRESULT AdviseSinkMap(bool bAdvise);

Параметры

bAdvise
Задайте значение true, если все записи приемника должны быть рекомендуемы; Значение false, если все записи приемника должны быть неуправляемыми.

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

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

CAxDialogImpl::Create

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

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

Параметры

hWndParent
[in] Дескриптор окна владельца.

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

RECT&
Этот параметр не используется. Этот параметр передается CComControlв .

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

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

Замечания

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

Вторая переопределение предоставляется, поэтому диалоговые окна можно использовать с CComControl.

CAxDialogImpl::D enostWindow

Вызовите этот метод, чтобы уничтожить диалоговое окно без режима.

BOOL DestroyWindow();

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

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

Замечания

Не вызывайте DestroyWindow модальное диалоговое окно. Вместо этого вызовите EndDialog .

CAxDialogImpl::D oModal

Вызовите этот метод для создания модального диалогового окна.

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

Параметры

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

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

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

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

Замечания

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

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

CAxDialogImpl::EndDialog

Вызовите этот метод для уничтожения модального диалогового окна.

BOOL EndDialog(int nRetCode);

Параметры

nRetCode
[in] Значение, возвращаемое DoModal.

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

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

Замечания

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

Примечание.

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

CAxDialogImpl::GetDialogProc

Вызовите этот метод, чтобы получить указатель на функцию обратного DialogProc вызова.

virtual DLGPROC GetDialogProc();

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

Возвращает указатель на функцию обратного DialogProc вызова.

Замечания

Функция DialogProc — это определяемая приложением функция обратного вызова.

CAxDialogImpl::GetIDD

Вызовите этот метод, чтобы получить идентификатор ресурса шаблона диалогового окна.

int GetIDD();

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

Возвращает идентификатор ресурса шаблона диалогового окна.

CAxDialogImpl::IsDialogMessage

Вызовите этот метод, чтобы определить, предназначено ли сообщение для этого диалогового окна и, если это так, обработать сообщение.

BOOL IsDialogMessage(LPMSG pMsg);

Параметры

pMsg
Указатель на структуру MSG, содержащую сообщение, которое должно быть проверка.

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

Возвращает значение TRUE, если сообщение обработано, значение FALSE в противном случае.

Замечания

Этот метод предназначен для вызова из цикла сообщений.

CAxDialogImpl::m_bModal

Переменная, которая существует только в отладочных сборках и имеет значение true, если диалоговое окно является модальным.

bool m_bModal;

См. также

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