概述:創建一個屬性表單,首先創建一個CPropertySheet對象;為每一個屬性表單創建一個CPropertyPage對象,在CPropertySheet類中;在CPropertySheet類的構造函數中添加AddPage函數添加每個屬性頁;最后在菜單函數中調用DoModal函數來顯示一個靜態屬性表單。屬性頁
是被添加屬性表單的,也就是說,屬性表單是屬性頁的父窗口。因此,可以通過GetParent()函數獲得屬性頁父窗口的指針,即屬性表單的
指針,但要經過類型轉換
步驟:
1、創建一個或多個屬性頁,基類為CPropertyPage。
class CPropSet1 : public CPropertyPage
{
// Dialog Data
//{{AFX_DATA(CPropSet1)
enum { IDD = IDD_PROP_SET1 };
int m_MAXVALUEX2;
int m_MINVALUEX2;
//}}AFX_DATA
}
2、建立CProp表單:基類為CPropertySheet。
CPropSheet::CPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
AddPage(&m_propSet1); //決定page順序
AddPage(&m_propSet2);
}
3、菜單函數:
void CDataView::OnPropsheet()
{
// TODO: Add your command handler code here
CPropSheet propSheet("參數設置"); //表單名稱,其他為缺省變量
propSheet.m_propSet1.m_MAXVALUEX2=m_XValueMax;
propSheet.m_propSet1.m_MINVALUEX2=m_XValueMin;
if( IDOK==propSheet.DoModal())
{
m_ChartCtrl1.EnableRefresh(false);
m_XValueMax=propSheet.m_propSet1.m_MAXVALUEX2;
m_XValueMin=propSheet.m_propSet1.m_MINVALUEX2;
m_ChartCtrl1.GetBottomAxis()->SetMinMax(m_XValueMin,m_XValueMax);
m_ChartCtrl1.EnableRefresh(true);
}
}
4、建立向導:
首先在調用屬性表單對象的DoModal函數之前,調用SetWizardMode函數。
propSheet.SetWizardMode();
然后通過SetWizardButtons函數設置向導對話框上的按鈕。
((CPropSheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT);
((CPropSheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT | PSWIZB_BACK);
((CPropSheet*)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_FINISH);
注意點:需改文字種類和類型。