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 |
---|---|
Konstrukce vícestránkového objektu dialogu DHTML (Průvodce styl). |
|
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
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
CMultiPageDHtmlDialog
Požadavky
Záhlaví: afxdhtml.h