다음을 통해 공유


CMultiPageDHtmlDialog 클래스

여러 페이지로 구성된 대화 상자는 여러 HTML 페이지를 순차적으로 표시하고 각 페이지의 이벤트를 처리합니다.

구문

class CMultiPageDHtmlDialog : public CDHtmlDialog

멤버

공용 생성자

속성 설명
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog 멀티 페이지(마법사 스타일) DHTML 대화 상자 개체를 생성합니다.
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog 다중 페이지 DHTML 대화 상자 개체를 제거합니다.

설명

이 작업을 수행하는 메커니즘은 각 페이지에 대한 포함된 이벤트 맵을 포함하는 DHTML 및 URL 이벤트 맵입니다.

예시

이 다중 페이지 대화 상자에서는 간단한 마법사와 유사한 기능을 정의하는 세 가지 HTML 리소스를 가정합니다. 첫 번째 페이지에는 다음 단추, 두 번째 페이지는 PrevNext 단추, 세 번째 페이지에는 Prev 단추가 있습니다. 단추 중 하나를 누르면 처리기 함수가 CDHtmlDialog::LoadFromResource를 호출하여 적절한 새 페이지를 로드합니다.

클래스 선언의 관련 부분(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
};

클래스 구현의 관련 부분(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;
}

상속 계층 구조

CObject

CDHtmlSinkHandlerBase2

CDHtmlSinkHandlerBase1

CCmdTarget

CDHtmlSinkHandler

CWnd

CDHtmlEventSink

Cdialog

CDHtmlDialog

CMultiPageDHtmlDialog

요구 사항

헤더: afxdhtml.h

CMultiPageDHtmlDialog::CMultiPageDHtmlDialog

멀티 페이지(마법사 스타일) DHTML 대화 상자 개체를 생성합니다.

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

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

CMultiPageDHtmlDialog();

매개 변수

lpszTemplateName
대화 상자 템플릿 리소스의 이름인 null로 끝나는 문자열입니다.

szHtmlResID
HTML 리소스의 이름인 null로 끝나는 문자열입니다.

pParentWnd
대화 상자 개체가 속한 CWnd 형식의 부모 또는 소유자 창 개체에 대한 포인터입니다. NULL이면 대화 상자 개체의 부모 창이 기본 애플리케이션 창으로 설정됩니다.

nIDTemplate
대화 상자 템플릿 리소스의 ID 번호를 포함합니다.

nHtmlResID
HTML 리소스의 ID 번호를 포함합니다.

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

다중 페이지 DHTML 대화 상자 개체를 제거합니다.

virtual ~CMultiPageDHtmlDialog();

참고 항목

CDHtmlDialog 클래스