CMFCPropertySheet的使用及PROPSHEETHEADER结构体介绍
来源:互联网 发布:fastadmin cms 编辑:程序博客网 时间:2024/05/16 08:18
Visual Studio 2008 SP1自带的示例里面,有个工程为PropSheetDemo,此示例介绍了CMFCPropertySheet属性表的使用,截图如下:
下面以VS2008SP1为测试环境,学习使用方法:
1.新建基于对话框工程;
2.新建一个类,基类为CMFCPropertySheet,名称如CMyPropertySheet;
3.添加两个对话框资源,双击对话框为其添加类,选择基类为CPropertyPage(因为这里选不了CMFCPropertyPage),名称分别如CPage1和Cpage2;
4.然后替换所有的CPropertyPage成为CMFCPropertyPage;
5.在CMyPropertySheet.h头文件里添加两个属性页的头文件,然后声明两个属性页对象:
CPage2 m_Page2;
在CMyPropertySheet.cpp的构造函数里面,添加如下语句:
m_psh.dwFlags |= PSH_NOAPPLYNOW ; //去掉“应用”按钮
m_psh.dwFlags &=~PSH_HASHELP; //去掉“帮助”按钮
SetLook(PropSheetLook_List);//样式外观设置,这里为列表型
AddPage(&m_Page1);
AddPage(&m_Page2);
6.在应用程序对话框头文件里面,添加属性表头文件
然后声明一个对象:
接着在对话框实现文件里面,按钮的单击事件里如下:
AfxMessageBox(_T("点了确定"));
else
AfxMessageBox(_T("点了取消"));
7.完成编译,就可以看到效果。其中对于属性表对话框的外观框架各种设置,请看下面的结构体。
PROPSHEETHEADER结构体,定义框架和属性表页。
PROPSHEETHEADER结构体:
DWORD dwSize; //这个结构的大小(字节)
DWORD dwFlags; //标志位,指出创建属性表页时的选项
HWND hwndParent; //属性表父窗口的句柄
HINSTANCE hInstance; //加载图标或标题字符串资源的实例句柄,如果pszIcon或pszCaption成员确定了资源加载,该成员必须指定
union {
HICON hIcon; //用在属性表对话框的标题栏小图标的图标句柄,如果dwFlags成员不包括PSH_USEHICON,这个成员被忽略
LPCTSTR pszIcon; //用在属性表对话框的标题栏小图标的图标资源,如果dwFlags成员不包括PSH_USEICONID,这个成员被忽略
} ;
LPCTSTR pszCaption; //属性表对话框的标题,如果dwFlags成员包括PSH_PROPTITLE,字符串“属性”是插入标题的开头
UINT nPages; //属性页phpage数组的元素数量
union {
UINT nStartPage; //当属性表对话框创建后的初始页,从0开始的索引页
LPCTSTR pStartPage; //当属性表对话框创建后的初始页的名称
} ;
union {
LPCPROPSHEETPAGE ppsp; //定义属性表上的页的PROPSHEETPAGE结构数组的指针
HPROPSHEETPAGE *phpage; //指向属性表页的句柄数组指针,每个句柄必须是在调用CreatePropertySheetPage函数之前创建,如果dwFlags成员包括PSH_PROPSHEETPAGE,phpage被忽略,应设置为NULL
} ;
PFNPROPSHEETCALLBACK pfnCallback; //指向当属性表被初始化时调用应用程序定义的回调函数,如需回调函数的信息,看PropSheetProc函数的说明,如果dwFlags成员不包括PSH_USECALLBACK,这个成员被忽略
#if (_WIN32_IE >= 0x0400)
union {
HBITMAP hbmWatermark; //版本5.80或更高版本,水印位图的句柄,如果dwFlags成员不包括PSH_USEHBMWATERMARK,这个成员被忽略
LPCTSTR pszbmWatermark; //版本5.80或更高版本,位图资源用作水印,如果dwFlags成员包括PSH_USEHBMWATERMARK,这个成员被忽略
} ;
HPALETTE hplWatermark; //版本5.80或更高版本,HPALETTE结构用做绘制水印位图和/或头位图,如果dwFlags成员不包括PSH_USEHPLWATERMARK,这个成员被忽略
union {
HBITMAP hbmHeader; //版本5.80或更高版本,头位图句柄,如果dwFlags成员不包括PSH_USEHBMHEADER,这个成员被忽略
LPCSTR pszbmHeader; //版本5.80或更高版本,位图资源使用为头位图,如果dwFlags成员包括PSH_USEHBMHEADER,这个成员被忽略
} ;
#endif
} PROPSHEETHEADER, *LPPROPSHEETHEADER;
其中的dwFlags标志位的选项参数如下:
值含义PSH_DEFAULT缺省模式- PSH_AEROWIZARD
- 0x00004000
- PSH_HEADERBITMAP
- 0x00004000
- PSH_NOMARGIN
- 0x00004000
扩展阅读:
1.CMFCPropertySheet Class http://msdn.microsoft.com/en-us/library/bb981937.aspx
2.PROPSHEETHEADER Structure http://msdn.microsoft.com/en-us/library/bb774546%28VS.85%29.aspx
3.Visual C++2010中CMFCPropertySheet的用法 http://blog.163.com/xu_chao2000/blog/static/277706102010430338431/
- CMFCPropertySheet的使用及PROPSHEETHEADER结构体介绍
- CMFCPropertySheet的使用及PROPSHEETHEADER结构体介绍
- 内核定时器的使用及相关结构体介绍
- Visual C++2010中CMFCPropertySheet的用法
- 结构体的定义及使用
- 结构体的使用及sort函数
- 结构体的使用及注意点
- c语言结构体介绍及用法
- swift的struct结构体类型介绍使用
- 结构体定义及使用
- 树形结构--zTree的使用介绍
- Selenium的介绍及使用
- lucene的介绍及使用
- JDBC的介绍及使用
- HZK16的介绍及使用
- Log4j的介绍及使用
- ASIHttpRequest的介绍及使用
- UITableView的介绍及使用
- 学习NodeJS第五天:JavaScript的继承
- 无线WiFi以及WLAN技术基础知识介绍
- 短信--摘自《广州日报》
- MDA模式开发Struts Portlet
- webwork项目转换到struts项目
- CMFCPropertySheet的使用及PROPSHEETHEADER结构体介绍
- C++强大背后 [转自:博文视点]
- Android使用faq
- CSS清除浮动的三个方法
- JS截取小数点
- Iperf使用方法与参数说明
- 三步让你的工作时间变充裕
- VC2008 快捷键
- 一个男人关心的东西 决定了他的层次