分类: C/C++
2012-01-27 02:50:45
Visual Studio 2008 SP1自带的示例里面,有个工程为PropSheetDemo,此示例介绍了CMFCPropertySheet属性表的使用,截图如下:
下面以VS2008SP1为测试环境,学习使用方法:
1.新建基于对话框工程;
2.新建一个类,基类为CMFCPropertySheet,名称如CMyPropertySheet;
3.添加两个对话框资源,双击对话框为其添加类,选择基类为CPropertyPage(因为这里选不了CMFCPropertyPage),名称分别如CPage1和Cpage2;
4.然后替换所有的CPropertyPage成为CMFCPropertyPage;
5.在CMyPropertySheet.h头文件里添加两个属性页的头文件,然后声明两个属性页对象:
在CMyPropertySheet.cpp的构造函数里面,添加如下语句:
6.在应用程序对话框头文件里面,添加属性表头文件
然后声明一个对象:
接着在对话框实现文件里面,按钮的单击事件里如下:
7.完成编译,就可以看到效果。其中对于属性表对话框的外观框架各种设置,请看下面的结构体。
PROPSHEETHEADER结构体,定义框架和属性表页。
PROPSHEETHEADER结构体:
其中的dwFlags标志位的选项参数如下:
值 | 含义 |
PSH_DEFAULT | 缺省模式 |
PSH_AEROWIZARD0x00004000 | Version 6.00 and Windows Vista,透明风格 |
PSH_HASHELP | 显示“帮助”按钮 |
PSH_HEADER | 版本5.80和更高版本。头位图表示用于Wizard97向导 |
PSH_HEADERBITMAP0x00004000 | Version 6.00 and Windows Vista,该pszbmHeader成员指定一个在标题区域显示位图 |
PSH_MODELESS | 指定创建非模态标签对话框 |
PSH_NOAPPLYNOW | “应用”按钮不可见 |
PSH_NOCONTEXTHELP | 版本5.80和更高版本,上下文敏感帮助按钮不可见 |
PSH_NOMARGIN0x00004000 | Version 6.00 and Windows Vista,不在框架和页之间插入边距 |
PSH_PROPSHEETPAGE | 使用ppsp成员,并且忽略phpage成员 |
PSH_PROPTITLE | 指定标签对话框的标题文字内容 |
PSH_RESIZABLE | 该向导允许由用户调整。最大化和最小化按钮出现在向导的框架和框架是相当大 |
PSH_RTLREADING | 设定标签对话框标题栏文字的阅读习惯(阿拉伯或希伯莱习惯) |
PSH_STRETCHWATERMARK | 伸展在Microsoft Internet Explorer 4.0兼容Wizard97式向导水印 |
PSH_USECALLBACK | 使用回调函数 |
PSH_USEHBMHEADER | 版本5.80或更高版本。获得从hbmHeader成员,而不是pszbmHeader成员头位图 |
PSH_USEHBMWATERMARK | 版本5.80或更高版本。获得从hbmWatermark成员水印图而不是pszbmWatermark成员 |
PSH_USEHICON | 使用的hIcon作为在属性表对话框的标题栏小图标 |
PSH_USEHPLWATERMARK | 版本5.80或更高版本。采用HPALETTE结构所指向hplWatermark成员而不是默认的调色板画出一个Wizard97向导的水印位图和/或头位图 |
PSH_USEICONID | 用作图标的资源名称pszIcon加载和使用中的属性表对话框的标题栏小图标 |
PSH_USEPAGELANG | 版本5.80或更高版本。指定该属性表语言将采取从第一页的资源 |
PSH_USEPSTARTPAGE | 采用pStartPage成员,而不是nStartPage成员在显示属性表的初始页面 |
PSH_WATERMARK | 版本5.80或更高版本。指定水印位图将被用于一个网页上有PSP_HIDEHEADER风格Wizard97向导 |
PSH_WIZARD | 创建一个向导属性表。当使用PSH_AEROWIZARD,还必须设置此标志 |
PSH_WIZARD97 | 版本5.80或更高版本。创建一个Wizard97风格的属性表,它支持在室内网页的标头和关于外部页面左侧位图 |
PSH_WIZARDCONTEXTHELP | 添加一个上下文敏感的帮助按钮("?") |
PSH_WIZARDHASFINISH | 始终显示在向导的Finish按钮 |
PSH_WIZARD_LITE | 版本5.80或更高版本。使用Wizard-lite的风格。这种风格是相似的外观PSH_WIZARD97,但它是实现更像PSH_WIZAR |
扩展阅读:
1.CMFCPropertySheet Class
2.PROPSHEETHEADER Structure
3.Visual C++2010中CMFCPropertySheet的用法 http://blog.163.com/xu_chao2000/blog/static/277706102010430338431/