Visual Studio 2008 SP1自带的示例里面,有个工程为PropSheetDemo,此示例介绍了CMFCPropertySheet属性表的使用,截图如下:
下面以VS2008SP1为测试环境,学习使用方法:
1.新建基于对话框工程;
2.新建一个类,基类为CMFCPropertySheet,名称如CMyPropertySheet;
3.添加两个对话框资源,双击对话框为其添加类,选择基类为CPropertyPage(因为这里选不了CMFCPropertyPage),名称分别如CPage1和Cpage2;
4.然后替换所有的CPropertyPage成为CMFCPropertyPage;
5.在CMyPropertySheet.h头文件里添加两个属性页的头文件,然后声明两个属性页对象:
CPage1 m_Page1;
CPage2 m_Page2;
CPage2 m_Page2;
在CMyPropertySheet.cpp的构造函数里面,添加如下语句:
m_psh.pszCaption=_T( "属性表对话框标题"); //设置属性表标题
m_psh.dwFlags |= PSH_NOAPPLYNOW ; //去掉“应用”按钮
m_psh.dwFlags &=~PSH_HASHELP; //去掉“帮助”按钮
SetLook(PropSheetLook_List); //样式外观设置,这里为列表型
AddPage(&m_Page1);
AddPage(&m_Page2);
m_psh.dwFlags |= PSH_NOAPPLYNOW ; //去掉“应用”按钮
m_psh.dwFlags &=~PSH_HASHELP; //去掉“帮助”按钮
SetLook(PropSheetLook_List); //样式外观设置,这里为列表型
AddPage(&m_Page1);
AddPage(&m_Page2);
6.在应用程序对话框头文件里面,添加属性表头文件
#include "MyPropertySheet.h"
然后声明一个对象:
CMyPropertySheet m_MySheet;
接着在对话框实现文件里面,按钮的单击事件里如下:
if (m_MySheet.DoModal() == IDOK)
AfxMessageBox(_T( "点了确定"));
else
AfxMessageBox(_T( "点了取消"));
AfxMessageBox(_T( "点了确定"));
else
AfxMessageBox(_T( "点了取消"));
7.完成编译,就可以