CMultiPageDHtmlDialog クラス
マルチページ ダイアログは、複数の HTML ページを順番に表示し、各ページのイベントを処理します。
構文
class CMultiPageDHtmlDialog : public CDHtmlDialog
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog | マルチページ (ウィザード スタイル) DHTML ダイアログ オブジェクトを構築します。 |
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog | マルチページ DHTML ダイアログ オブジェクトを破棄します。 |
解説
これを行うためのメカニズムは、 DHTML と URL イベント マップですには、各ページの埋め込みイベント マップが含まれています。
例
このマルチページ ダイアログでは、単純なウィザードのような機能を定義する 3 つの HTML リソースを想定しています。 最初のページには Next ボタン、2 番目のページには Prev と Next ボタン、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;
}
継承階層
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
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();