Sdílet prostřednictvím


Třída CMultiPageDHtmlDialog

Vícestránkové dialogové okno zobrazí postupně více stránek HTML a zpracovává události z každé stránky.

class CMultiPageDHtmlDialog : public CDHtmlDialog

Členy

Veřejné konstruktory

Název

Description

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

Konstrukce vícestránkového objektu dialogu DHTML (Průvodce styl).

CMultiPageDHtmlDialog:: ~ CMultiPageDHtmlDialog

Zničí vícestránkového objektu jazyka DHTML dialogu.

Poznámky

Mechanismus tohoto postupu je DHTML a URL událost mapovat, který obsahuje mapy vložené událostí pro každou stránku.

Příklad

Toto dialogové okno vícestránkového předpokládá tři zdroje HTML definující jednoduchý Průvodce podobné funkce.První stránka má Next tlačítko, druhý předchozí a Next tlačítko a třetí předchozí tlačítko.Při stisknutí tlačítka vyvolá funkci zpracování CDHtmlDialog::LoadFromResource načíst odpovídající nové stránky.

Relevantní části deklarace třídy (v 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

Relevantní části implementace třídy (v 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;
}

Hierarchii dědičnosti

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

CMultiPageDHtmlDialog

Požadavky

Záhlaví: afxdhtml.h

Viz také

Referenční dokumentace

Třída CDHtmlDialog

Další zdroje

Multipage DHTML and URL Event Maps