概述:创建一个属性表单,首先创建一个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);
注意点:需改文字种类和类型。