次の方法で共有


CMultiPageDHtmlDialog クラス

マルチページ ダイアログは、複数の HTML ページを順番に表示し、各ページのイベントを処理します。

構文

class CMultiPageDHtmlDialog : public CDHtmlDialog

メンバー

パブリック コンストラクター

名前 説明
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog マルチページ (ウィザード スタイル) DHTML ダイアログ オブジェクトを構築します。
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog マルチページ DHTML ダイアログ オブジェクトを破棄します。

解説

これを行うためのメカニズムは、 DHTML と URL イベント マップですには、各ページの埋め込みイベント マップが含まれています。

このマルチページ ダイアログでは、単純なウィザードのような機能を定義する 3 つの HTML リソースを想定しています。 最初のページには Next ボタン、2 番目のページには PrevNext ボタン、3 番目のページには 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

要件

Header: 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 クラス