Classe di CMultiPageDHtmlDialog
Una finestra di dialogo a più pagine visualizzate più pagine HTML in sequenza e gestisce gli eventi da ogni pagina.
class CMultiPageDHtmlDialog : public CDHtmlDialog
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruisce un oggetto finestra di dialogo (stile procedura guidata) a più pagine DHTML. |
|
Elimina un oggetto finestra di dialogo a più pagine DHTML. |
Note
Il meccanismo per questo scopo è Mappa eventi di URL e DHTML, che contiene mappe eventi incorporate per ogni pagina.
Esempio
Questa finestra di dialogo a più pagine presuppone tre risorse HTML che definiscono la simile a una procedura guidata semplice funzionalità.La prima pagina contiene un pulsante Next, il secondo pulsante Next e Prev e il terzo un pulsante Prev.Quando uno dei pulsanti viene premuto, chiamate di funzioni di gestione CDHtmlDialog::LoadFromResource per caricare la nuova pagina appropriata.
Le parti rilevanti della dichiarazione di classe (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
Le parti rilevanti dell'implementazione della classe (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;
}
Gerarchia di ereditarietà
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
CMultiPageDHtmlDialog
Requisiti
Header: afxdhtml.h