Classe CMultiPageDHtmlDialog
Una finestra di dialogo a più pagine visualizza più pagine HTML in sequenza e gestisce gli eventi da ogni pagina.
Sintassi
class CMultiPageDHtmlDialog : public CDHtmlDialog
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog | Costruisce un oggetto di dialogo DHTML a più pagine (stile procedura guidata). |
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog | Elimina definitivamente un oggetto finestra di dialogo DHTML a più pagine. |
Osservazioni:
Il meccanismo per eseguire questa operazione è una mappa eventi DHTML e URL, che contiene mappe eventi incorporate per ogni pagina.
Esempio
Questa finestra di dialogo a più pagine presuppone tre risorse HTML che definiscono funzionalità semplici simili a una procedura guidata. La prima pagina include un pulsante Avanti , il secondo pulsante Prev e Avanti e il terzo pulsante Prev . Quando si preme uno dei pulsanti, una funzione del gestore chiama CDHtmlDialog::LoadFromResource per caricare la nuova pagina appropriata.
Parti pertinenti 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
};
Parti pertinenti 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
Intestazione: afxdhtml.h
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog
Costruisce un oggetto di dialogo DHTML a più pagine (stile procedura guidata).
CMultiPageDHtmlDialog(
LPCTSTR lpszTemplateName,
LPCTSTR szHtmlResID = NULL,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog(
UINT nIDTemplate,
UINT nHtmlResID = 0,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog();
Parametri
lpszTemplateName
Stringa con terminazione Null che corrisponde al nome di una risorsa modello di finestra di dialogo.
szHtmlResID
Stringa con terminazione Null che corrisponde al nome di una risorsa HTML.
pParentWnd
Puntatore all'oggetto finestra padre o proprietario (di tipo CWnd) a cui appartiene l'oggetto dialog. Se è NULL, la finestra padre dell'oggetto finestra di dialogo viene impostata sulla finestra principale dell'applicazione.
nIDTemplate
Contiene il numero ID di una risorsa modello di finestra di dialogo.
nHtmlResID
Contiene il numero ID di una risorsa HTML.
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog
Elimina definitivamente un oggetto finestra di dialogo DHTML a più pagine.
virtual ~CMultiPageDHtmlDialog();