CMultiPageDHtmlDialog-Klasse
Ein mehrseitiges Dialogfeld zeigt mehrere HTML-Seiten sequenziell an und behandelt die Ereignisse jeder Seite.
Syntax
class CMultiPageDHtmlDialog : public CDHtmlDialog
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog | Erstellt ein mehrseitiges DHTML-Dialogfeldobjekt (Assistentenformat). |
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog | Zerstört ein mehrseitiges DHTML-Dialogfeldobjekt. |
Hinweise
Der Mechanismus hierfür ist eine DHTML- und URL-Ereigniszuordnung, die eingebettete Ereigniszuordnungen für jede Seite enthält.
Beispiel
In diesem mehrseitigen Dialogfeld werden drei HTML-Ressourcen vorausgesetzt, die einfache Funktionen wie den Assistenten definieren. Die erste Seite verfügt über eine Schaltfläche "Weiter" , die zweite schaltfläche " Vor" und "Weiter " und die dritte Schaltfläche " Vor" . Wenn eine der Schaltflächen gedrückt wird, ruft eine Handlerfunktion CDHtmlDialog::LoadFromResource auf, um die entsprechende neue Seite zu laden.
Die relevanten Teile der Klassendeklaration (in 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
};
Die relevanten Teile der Klassenimplementierung (in 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;
}
Vererbungshierarchie
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
CMultiPageDHtmlDialog
Anforderungen
Header: afxdhtml.h
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog
Erstellt ein mehrseitiges DHTML-Dialogfeldobjekt (Assistentenformat).
CMultiPageDHtmlDialog(
LPCTSTR lpszTemplateName,
LPCTSTR szHtmlResID = NULL,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog(
UINT nIDTemplate,
UINT nHtmlResID = 0,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog();
Parameter
lpszTemplateName
Die mit Null beendete Zeichenfolge, bei der es sich um den Namen einer Dialogfeldvorlagenressource handelt.
szHtmlResID
Die mit Null beendete Zeichenfolge, die den Namen einer HTML-Ressource darstellt.
pParentWnd
Ein Zeiger auf das übergeordnete oder Besitzerfensterobjekt (vom Typ CWnd), zu dem das Dialogobjekt gehört. Wenn es NULL ist, wird das übergeordnete Fenster des Dialogfeldobjekts auf das Hauptanwendungsfenster festgelegt.
nIDTemplate
Enthält die ID-Nummer einer Dialogfeldvorlagenressource.
nHtmlResID
Enthält die ID-Nummer einer HTML-Ressource.
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog
Zerstört ein mehrseitiges DHTML-Dialogfeldobjekt.
virtual ~CMultiPageDHtmlDialog();