幽魂国度

 

如何实现属性表单

概述:创建一个属性表单,首先创建一个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);

注意点:需改文字种类和类型。

posted on 2010-01-21 19:46 阅读(881) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜