Compartir a través de


CMultiPageDHtmlDialog (clase)

Un cuadro de diálogo de varias páginas muestra varias páginas HTML secuencialmente y administra los eventos de cada página.

Sintaxis

class CMultiPageDHtmlDialog : public CDHtmlDialog

Miembros

Constructores públicos

Nombre Descripción
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog Construye un objeto de diálogo DHTML de varias páginas (estilo del asistente).
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog Destruye un objeto de diálogo DHTML de varias páginas.

Comentarios

El mecanismo para hacerlo es un mapa de eventos DHTML y URL, que contiene mapas de eventos insertados en cada página.

Ejemplo

En este diálogo de varias páginas se asumen tres recursos HTML que definen una funcionalidad sencilla similar al asistente. La primera página tiene un botón Siguiente; la segunda, un botón Ant y Siguiente; y la tercera, un botón Ant. Cuando se presiona uno de los botones, una función de controlador llama a CDHtmlDialog::LoadFromResource para cargar la nueva página adecuada.

Las partes pertinentes de la declaración de clase (en 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
};

Las partes pertinentes de la implementación de clase (en 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;
}

Jerarquía de herencia

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

Cdialog

CDHtmlDialog

CMultiPageDHtmlDialog

Requisitos

Encabezado: afxdhtml.h

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

Construye un objeto de diálogo DHTML de varias páginas (estilo del asistente).

CMultiPageDHtmlDialog(
    LPCTSTR lpszTemplateName,
    LPCTSTR szHtmlResID = NULL,
    CWnd* pParentWnd = NULL);

CMultiPageDHtmlDialog(
    UINT nIDTemplate,
    UINT nHtmlResID = 0,
    CWnd* pParentWnd = NULL);

CMultiPageDHtmlDialog();

Parámetros

lpszTemplateName
Cadena terminada en null que es el nombre de un recurso de plantilla de cuadro de diálogo.

szHtmlResID
Cadena terminada en null que es el nombre de un recurso HTML.

pParentWnd
Puntero al objeto de ventana primaria o propietaria (de tipo CWnd) al que pertenece el objeto de diálogo. Si es NULL, la ventana primaria del objeto de cuadro de diálogo se establece en la ventana principal de la aplicación.

nIDTemplate
Contiene el número de identificador de un recurso de plantilla de cuadro de diálogo.

nHtmlResID
Contiene el número de identificador de un recurso HTML.

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

Destruye un objeto de diálogo DHTML de varias páginas.

virtual ~CMultiPageDHtmlDialog();

Consulte también

CDHtmlDialog (clase)