CMultiPageDHtmlDialog 类

多页对话框按顺序显示多个 HTML 页并处理每页中的事件。

语法

class CMultiPageDHtmlDialog : public CDHtmlDialog

成员

公共构造函数

名称 描述
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog 构造多页(向导样式)DHTML 对话框对象。
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog 销毁多页 DHTML 对话框对象。

备注

执行此操作的机制是 DHTML 和 URL 事件映射,其中包含每个页面的嵌入事件映射。

示例

此多页对话框假定有三个定义简单向导式功能的 HTML 资源。 第一页有“下一步”按钮,第二页有“上一步”和“下一步”按钮,第三页有“上一步”按钮。 按下其中一个按钮时,处理程序函数调用 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
以 null 结尾的字符串,它是 HTML 资源的名称。

pParentWnd
指向对话框对象所属的父窗口对象或所有者窗口对象(类型为 CWnd)的指针。 如果为 NULL,则对话框对象的父窗口设置为主应用程序窗口。

nIDTemplate
包含对话框模板资源的 ID 号码。

nHtmlResID
包含 HTML 资源的 ID 编号。

CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog

销毁多页 DHTML 对话框对象。

virtual ~CMultiPageDHtmlDialog();

另请参阅

CDHtmlDialog 类