Sdílet prostřednictvím


CMultiPageDHtmlDialog – třída

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

Syntaxe

class CMultiPageDHtmlDialog : public CDHtmlDialog

Členové

Veřejné konstruktory

Název Popis
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog Vytvoří objekt dialogového okna DHTML s více stránkami (wizard-style).
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog Zničí vícestránkový objekt dialogového okna DHTML.

Poznámky

Mechanismus pro tento postup je mapa událostí DHTML a URL, která obsahuje vložené mapy událostí pro každou stránku.

Příklad

Toto dialogové okno s více stránkami předpokládá tři prostředky HTML, které definují jednoduché funkce podobné průvodci. Na první stránce je tlačítko Další , druhé tlačítko Prev a Next a třetí tlačítko Prev . Při stisknutí jednoho z tlačítek volá funkce obslužné rutiny cdHtmlDialog::LoadFromResource pro načtení příslušné 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;
}

Hierarchie dědičnosti

Objekt CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

CMultiPageDHtmlDialog

Požadavky

Hlavička: afxdhtml.h

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

Vytvoří objekt dialogového okna DHTML s více stránkami (wizard-style).

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

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

CMultiPageDHtmlDialog();

Parametry

lpszTemplateName
Řetězec ukončený hodnotou null, který je názvem prostředku šablony dialogového okna.

szHtmlResID
Řetězec ukončený hodnotou null, který je názvem prostředku HTML.

pParentWnd
Ukazatel na objekt okna nadřazeného nebo vlastníka (typu CWnd), do kterého objekt dialogového okna patří. Pokud je null, nadřazené okno objektu dialogového okna je nastaveno na hlavní okno aplikace.

nIDTemplate
Obsahuje číslo ID prostředku šablony dialogového okna.

nHtmlResID
Obsahuje číslo ID prostředku HTML.

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

Zničí vícestránkový objekt dialogového okna DHTML.

virtual ~CMultiPageDHtmlDialog();

Viz také

CDHtmlDialog – třída