CMultiPageDHtmlDialog クラス

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

構文

class CMultiPageDHtmlDialog : public CDHtmlDialog

メンバー

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

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

解説

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

このマルチページ ダイアログでは、単純なウィザードのような機能を定義する 3 つの HTML リソースを想定しています。 最初のページには [ 次へ ] ボタン、2 番目のページには [前 へ] ボタンと [次へ] ボタン、3 番目のページには [前 へ] ボタンがあります。 いずれかのボタンが押されると、ハンドラー関数は 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 クラス