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;
}
継承階層
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
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();
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示