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


Класс CMultiPageDHtmlDialog

Многостраничное диалоговое окно последовательно отображает несколько HTML-страниц и обрабатывает события каждой страницы.

Синтаксис

class CMultiPageDHtmlDialog : public CDHtmlDialog

Участники

Открытые конструкторы

Имя Описание
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog Создает объект диалогового окна DHTML с несколькими страницами (в стиле мастера).
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog Уничтожает объект диалогового окна DHTML с несколькими страницами.

Замечания

Механизмом этого является карта событий DHTML и URL-адреса, которая содержит внедренные карты событий для каждой страницы.

Пример

В этом диалоговом окне с несколькими страницами предполагается три HTML-ресурса, определяющие простые функции мастера. Первая страница имеет кнопку "Далее", вторую кнопку "Предварительная" и "Далее" и третью кнопку "Предварительная". При нажатии одной из кнопок функция обработчика вызывает CDHtmlDialog::LoadFromResource для загрузки соответствующей новой страницы.

Соответствующие части объявления класса (в CMyMultiPageDlg.h):

class CMyMultiPageDlg : public CMultiPageDHtmlDialog
{
public:
   // Declare the DHTML event handlers:
   HRESULT OnPage1Next(IHTMLElement* pElement);
   HRESULT OnPage2Next(IHTMLElement* pElement);
   HRESULT OnPage2Back(IHTMLElement* pElement);
   HRESULT OnPage3Back(IHTMLElement* pElement);

   DECLARE_DHTML_URL_EVENT_MAP()

   // rest of class declaration omitted
};

Соответствующие части реализации класса (в CMyMultipageDlg.cpp):

BEGIN_DHTML_URL_EVENT_MAP(CMyMultiPageDlg)

   BEGIN_EMBED_DHTML_EVENT_MAP(CMyMultiPageDlg, Page1)
      DHTML_EVENT_ONCLICK(_T("Next"), OnPage1Next)
   END_EMBED_DHTML_EVENT_MAP()

   BEGIN_EMBED_DHTML_EVENT_MAP(CMyMultiPageDlg, Page2)
      DHTML_EVENT_ONCLICK(_T("Back"), OnPage2Back)
      DHTML_EVENT_ONCLICK(_T("Next"), OnPage2Next)
   END_EMBED_DHTML_EVENT_MAP()


   BEGIN_EMBED_DHTML_EVENT_MAP(CMyMultiPageDlg, Page3)
      DHTML_EVENT_ONCLICK(_T("Back"), OnPage3Back)
   END_EMBED_DHTML_EVENT_MAP()

   BEGIN_URL_ENTRIES(CMyMultiPageDlg)
      URL_EVENT_ENTRY(CMyMultiPageDlg, _T("153"), Page1)
      URL_EVENT_ENTRY(CMyMultiPageDlg, _T("154"), Page2)
      URL_EVENT_ENTRY(CMyMultiPageDlg, _T("155"), Page3)
      // Note: IDR_PAGE1 = 153, IDR_PAGE2 = 154, IDR_PAGE3 = 155
   END_URL_ENTRIES()

END_DHTML_URL_EVENT_MAP(CMyMultiPageDlg)

HRESULT CMyMultiPageDlg::OnPage1Next(IHTMLElement *pElement)
{
   UNREFERENCED_PARAMETER(pElement);
   LoadFromResource(IDR_PAGE2);
   return S_OK;
}

HRESULT CMyMultiPageDlg::OnPage2Next(IHTMLElement *pElement)
{
   UNREFERENCED_PARAMETER(pElement);
   LoadFromResource(IDR_PAGE3);
   return S_OK;
}

HRESULT CMyMultiPageDlg::OnPage2Back(IHTMLElement *pElement)
{
   UNREFERENCED_PARAMETER(pElement);
   LoadFromResource(IDR_PAGE1);
   return S_OK;
}

HRESULT CMyMultiPageDlg::OnPage3Back(IHTMLElement *pElement)
{
   UNREFERENCED_PARAMETER(pElement);
   LoadFromResource(IDR_PAGE2);
   return S_OK;
}

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

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

CMultiPageDHtmlDialog

Требования

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

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

Создает объект диалогового окна DHTML с несколькими страницами (в стиле мастера).

CMultiPageDHtmlDialog(
    LPCTSTR lpszTemplateName,
    LPCTSTR szHtmlResID = NULL,
    CWnd* pParentWnd = NULL);

CMultiPageDHtmlDialog(
    UINT nIDTemplate,
    UINT nHtmlResID = 0,
    CWnd* pParentWnd = NULL);

CMultiPageDHtmlDialog();

Параметры

lpszTemplateName
Строка, завершающаяся значением NULL, которая является именем ресурса шаблона диалогового окна.

szHtmlResID
Строка, завершающаяся значением NULL, которая является именем ресурса HTML.

pParentWnd
Указатель на родительский или владелец объекта окна (типа CWnd), к которому принадлежит объект диалогового окна. Если значение NULL, родительское окно диалогового объекта устанавливается в главное окно приложения.

nIDTemplate
Содержит идентификатор ресурса шаблона диалогового окна.

nHtmlResID
Содержит идентификатор html-ресурса.

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

Уничтожает объект диалогового окна DHTML с несколькими страницами.

virtual ~CMultiPageDHtmlDialog();

См. также

Класс CDHtmlDialog