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
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
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();