Klasa CMultiPageDHtmlDialog
Okno dialogowe wielostronicowe wyświetla sekwencyjnie wiele stron HTML i obsługuje zdarzenia z każdej strony.
Składnia
class CMultiPageDHtmlDialog : public CDHtmlDialog
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog | Tworzy obiekt okna dialogowego DHTML wielostronicowego (w stylu kreatora). |
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog | Niszczy wielostronicowy obiekt okna dialogowego DHTML. |
Uwagi
Mechanizmem w tym celu jest mapa zdarzeń DHTML i URL, która zawiera osadzone mapy zdarzeń dla każdej strony.
Przykład
W tym wielostronicowym oknie dialogowym założono, że trzy zasoby HTML definiują proste funkcje przypominające kreatora. Pierwsza strona ma przycisk Next (Dalej), drugi przycisk Prev (Prev) i Next (Dalej), a trzeci przycisk Prev (Prev). Po naciśnięciu jednego z przycisków funkcja obsługi wywołuje element CDHtmlDialog::LoadFromResource , aby załadować odpowiednią nową stronę.
Istotne części deklaracji klasy (w 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
};
Istotne części implementacji klasy (w 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;
}
Hierarchia dziedziczenia
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
CMultiPageDHtmlDialog
Wymagania
Nagłówek: afxdhtml.h
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog
Tworzy obiekt okna dialogowego DHTML wielostronicowego (w stylu kreatora).
CMultiPageDHtmlDialog(
LPCTSTR lpszTemplateName,
LPCTSTR szHtmlResID = NULL,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog(
UINT nIDTemplate,
UINT nHtmlResID = 0,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog();
Parametry
lpszTemplateName
Ciąg o wartości null, który jest nazwą zasobu szablonu okna dialogowego.
szHtmlResID
Ciąg zakończony wartością null, który jest nazwą zasobu HTML.
pParentWnd
Wskaźnik do obiektu okna nadrzędnego lub właściciela (typu CWnd), do którego należy obiekt okna dialogowego. Jeśli ma wartość NULL, nadrzędne okno obiektu okna dialogowego jest ustawione na główne okno aplikacji.
nIDTemplate
Zawiera identyfikator zasobu szablonu okna dialogowego.
nHtmlResID
Zawiera identyfikator zasobu HTML.
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog
Niszczy wielostronicowy obiekt okna dialogowego DHTML.
virtual ~CMultiPageDHtmlDialog();