CMultiPageDHtmlDialog Sınıfı
Çok sayfalı iletişim kutusu birden çok HTML sayfasını sıralı olarak görüntüler ve her sayfadan olayları işler.
Sözdizimi
class CMultiPageDHtmlDialog : public CDHtmlDialog
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog | Çok sayfalı (sihirbaz stili) bir DHTML iletişim kutusu nesnesi oluşturur. |
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog | Çok sayfalı DHTML iletişim kutusu nesnesini yok eder. |
Açıklamalar
Bunu yapmanın mekanizması, her sayfa için eklenmiş olay eşlemeleri içeren bir DHTML ve URL olay eşlemesidir.
Örnek
Bu çok sayfalı iletişim kutusu, sihirbaz benzeri basit işlevleri tanımlayan üç HTML kaynağı olduğunu varsayar. İlk sayfada İleri düğmesi, ikincisinde Önceki ve İleri düğmesi, üçüncüsinde ise Önceki düğmesi vardır. Düğmelerden birine basıldığında, işleyici işlevi uygun yeni sayfayı yüklemek için CDHtmlDialog::LoadFromResource çağrısı yapar.
Sınıf bildiriminin ilgili bölümleri (CMyMultiPageDlg.h içinde):
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
};
Sınıf uygulamasının ilgili bölümleri (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;
}
Devralma Hiyerarşisi
CDHtmlSinkHandlerBase2
CDHtmlSinkHandlerBase1
CDHtmlSinkHandler
CDHtmlEventSink
CMultiPageDHtmlDialog
Gereksinimler
Üst bilgi: afxdhtml.h
CMultiPageDHtmlDialog::CMultiPageDHtmlDialog
Çok sayfalı (sihirbaz stili) bir DHTML iletişim kutusu nesnesi oluşturur.
CMultiPageDHtmlDialog(
LPCTSTR lpszTemplateName,
LPCTSTR szHtmlResID = NULL,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog(
UINT nIDTemplate,
UINT nHtmlResID = 0,
CWnd* pParentWnd = NULL);
CMultiPageDHtmlDialog();
Parametreler
lpszTemplateName
bir iletişim kutusu şablon kaynağının adı olan null ile sonlandırılan dize.
szHtmlResID
BIR HTML kaynağının adı olan null ile sonlandırılan dize.
pParentWnd
İletişim kutusu nesnesinin ait olduğu üst veya sahip pencere nesnesine (CWnd türünde) yönelik bir işaretçi. NULL ise, iletişim kutusu nesnesinin üst penceresi ana uygulama penceresine ayarlanır.
nIDTemplate
İletişim kutusu şablonu kaynağının kimlik numarasını içerir.
nHtmlResID
BIR HTML kaynağının kimlik numarasını içerir.
CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog
Çok sayfalı DHTML iletişim kutusu nesnesini yok eder.
virtual ~CMultiPageDHtmlDialog();