Classe de CMultiPageDHtmlDialog

Uma caixa de diálogo com várias páginas exibe várias páginas HTML seqüencialmente e trata os eventos de cada página.

class CMultiPageDHtmlDialog : public CDHtmlDialog

Membros

9he1z9ds.collapse_all(pt-br,VS.110).gifConstrutores public

Nome

Descrição

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

Constrói uma um objeto com várias páginas (estilo assistente) da caixa de diálogo DHTML.

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

For um objeto com várias páginas da caixa de diálogo DHTML.

Comentários

O mecanismo para fazer isso é Mapeamento de evento de DHTML e URL, que contém mapas do evento inseridos para cada página.

Exemplo

Esta caixa de diálogo com várias páginas pressupõe três recursos HTML simples que definem como uma funcionalidade.A primeira página tem um botão de Next , o segundo um botão de Ant e de Next , e o terceiro um botão de Ant .Quando um dos botões for pressionado, chamadas de função CDHtmlDialog::LoadFromResource de um manipulador para carregar a nova página apropriado.

As partes pertinentes a 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 a 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

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

CMultiPageDHtmlDialog

Requisitos

Cabeçalho: afxdhtml.h

Consulte também

Referência

Classe de CDHtmlDialog

Outros recursos

Multipage DHTML and URL Event Maps