首页 > 代码库 > VS2010、MFC对话框程序、点击一个按钮弹出一个有多选项卡的属性页界面(即属性表单)

VS2010、MFC对话框程序、点击一个按钮弹出一个有多选项卡的属性页界面(即属性表单)

第一步:

  建立多个属性页,可以添加对话框资源,然后修改对话框资源的属性,在vs2010中,修改如下3个:Style设置为child;Border设置为Thin;System menu设置为fasul;

Title Bar为true(默认即为true);修改Caption:为此属性页选项卡的名称;

第二步:

  为上面的属性页添加类,父类选为CPropertyPage;添加方式:右击对话框添加类即可。

  (若是父类中没有CPropertyPage类,从类向导中添加即可,此种方法添加时需要选好相应的对话框ID,有几个属性页就添加几个类)

假设有两个选项卡,即属性页,分别类名为CPage1,CPage2;

第三步:

  使用类向导添加一个新的MFC类,父类为CPropertySheet类(属性表单类),假设类名为CSheet(它默认不对应任何对话框);

第四步:(把属性页和属性表单表联系起来)

  在CSheet(属性表单类)类中创建属性页对象:

  CPage1 m_page1;

  CPage2 m_page2;

因为用到CPage1,CPage2两个类,所以需要在Csheet的头文件中包含属性页的头文件:

  #include "CPage1"

  #include "CPage2"

第五步:

(第四步只是把属性页在表单中声明或者说只是在表单类中添上了属性页的两个对象,还需要用属性表单CPropertySheet的成员函数AddPage把属性页添加显示在属性表单中。

可以这么理解:第四步是表示属性表单有这两个属性页,第五步是把这属性页拿过来用)

  在CSheet的构造函数中(它有两个构造函数,用哪一个都行,建议用第一变量为LPCTSTR的那个),添加如下代码:

AddPage(&m_page1);

AddPage(&m_page2);

这样就把属性页完全调到表单中了。

第六步:

给主对话框的按钮添加执行函数:

CSheet prsheet(_T("期望的表单总名称"))//prsheet是CSheet的实例对象,记得类不能直接用,须得实例化才行;_T()是2010的编码风格需要;

  //“期望的表单总名称”是构造函数的参数

prsheet.DoModal();//以模态窗口显示实例化后的属性表单;

VS2010、MFC对话框程序、点击一个按钮弹出一个有多选项卡的属性页界面(即属性表单)