Classe CMultiPageDHtmlDialog
Uma caixa de diálogo de várias páginas exibe várias páginas HTML sequencialmente e manipula os eventos de cada página.
Sintaxe
class CMultiPageDHtmlDialog : public CDHtmlDialog
Membros
Construtores públicos
Nome | Descrição |
---|---|
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog | Constrói um objeto de diálogo DHTML (estilo assistente) de várias páginas. |
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog | Destrói um objeto de diálogo DHTML de várias páginas. |
Comentários
O mecanismo para fazer isso é um mapa de eventos DHTML e URL, que contém mapas de eventos inseridos para cada página.
Exemplo
Essa caixa de diálogo de várias páginas pressupõe três recursos HTML que definem funcionalidades simples semelhantes a assistentes. A primeira página tem um botão Avançar, a segunda, um botão Voltar e Avançar e a terceiro, um botão Voltar. Quando um dos botões é pressionado, uma função de manipulador chama CDHtmlDialog::LoadFromResource para carregar a nova página apropriada.
As partes pertinentes da declaração de classe (em 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
};
As partes pertinentes da implementação da classe (em 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;
}
Hierarquia de herança
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
CMultiPageDHtmlDialog
Requisitos
Cabeçalho: afxdhtml.h
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog
Constrói um objeto de diálogo DHTML (estilo assistente) de várias páginas.
CMultiPageDHtmlDialog(
LPCTSTR lpszTemplateName,
LPCTSTR szHtmlResID = NULL,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog(
UINT nIDTemplate,
UINT nHtmlResID = 0,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog();
Parâmetros
lpszTemplateName
A cadeia de caracteres terminada em nulo que é o nome de um recurso de modelo de caixa de diálogo.
szHtmlResID
A cadeia de caracteres terminada em nulo que é o nome de um recurso HTML.
pParentWnd
Um ponteiro para o objeto de janela pai ou proprietário (do tipo CWnd) ao qual o objeto de caixa de diálogo pertence. Se for NULL, a janela pai do objeto de caixa de diálogo será definida como a janela principal do aplicativo.
nIDTemplate
Contém o número de ID de um recurso de modelo de caixa de diálogo.
nHtmlResID
Contém o número de ID de um recurso HTML.
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog
Destrói um objeto de diálogo DHTML de várias páginas.
virtual ~CMultiPageDHtmlDialog();