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
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
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();