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à

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

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();

Vedi anche

Classe CDHtmlDialog