Udostępnij za pośrednictwem


Klasa CMultiPageDHtmlDialog

Okno dialogowe wielostronicowe wyświetla sekwencyjnie wiele stron HTML i obsługuje zdarzenia z każdej strony.

Składnia

class CMultiPageDHtmlDialog : public CDHtmlDialog

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog Tworzy obiekt okna dialogowego DHTML wielostronicowego (w stylu kreatora).
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog Niszczy wielostronicowy obiekt okna dialogowego DHTML.

Uwagi

Mechanizmem w tym celu jest mapa zdarzeń DHTML i URL, która zawiera osadzone mapy zdarzeń dla każdej strony.

Przykład

W tym wielostronicowym oknie dialogowym założono, że trzy zasoby HTML definiują proste funkcje przypominające kreatora. Pierwsza strona ma przycisk Next (Dalej), drugi przycisk Prev (Prev) i Next (Dalej), a trzeci przycisk Prev (Prev). Po naciśnięciu jednego z przycisków funkcja obsługi wywołuje element CDHtmlDialog::LoadFromResource , aby załadować odpowiednią nową stronę.

Istotne części deklaracji klasy (w 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
};

Istotne części implementacji klasy (w 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;
}

Hierarchia dziedziczenia

Obiekt CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

CDialog

CDHtmlDialog

CMultiPageDHtmlDialog

Wymagania

Nagłówek: afxdhtml.h

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

Tworzy obiekt okna dialogowego DHTML wielostronicowego (w stylu kreatora).

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

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

CMultiPageDHtmlDialog();

Parametry

lpszTemplateName
Ciąg o wartości null, który jest nazwą zasobu szablonu okna dialogowego.

szHtmlResID
Ciąg zakończony wartością null, który jest nazwą zasobu HTML.

pParentWnd
Wskaźnik do obiektu okna nadrzędnego lub właściciela (typu CWnd), do którego należy obiekt okna dialogowego. Jeśli ma wartość NULL, nadrzędne okno obiektu okna dialogowego jest ustawione na główne okno aplikacji.

nIDTemplate
Zawiera identyfikator zasobu szablonu okna dialogowego.

nHtmlResID
Zawiera identyfikator zasobu HTML.

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

Niszczy wielostronicowy obiekt okna dialogowego DHTML.

virtual ~CMultiPageDHtmlDialog();

Zobacz też

Klasa CDHtmlDialog