PROPSHEETHEADER 结构

定义属性表的框架和页。

语法

typedef struct {
    DWORD      dwSize;
    DWORD      dwFlags;
    HWND       hwndParent;
    HINSTANCE  hInstance;
    union {
        HICON   hIcon;
        LPCTSTR pszIcon;
    };
    LPCTSTR  pszCaption;
    UINT     nPages;
    union {
        UINT    nStartPage;
        LPCTSTR pStartPage;
    };
    union {
        LPCPROPSHEETPAGE ppsp;
        HPROPSHEETPAGE   *phpage;
    };
    PFNPROPSHEETCALLBACK pfnCallback;
    union {
        HBITMAP hbmWatermark;
        LPCTSTR pszbmWatermark;
    };
    HPALETTE  hplWatermark;
    union {
        HBITMAP hbmHeader;
        LPCSTR  pszbmHeader;
    };
} PROPSHEETHEADER, *LPPROPSHEETHEADER;

成员

dwSize

类型:DWORD

此结构的大小(以字节为单位)。 属性表管理器使用此成员来确定所使用的 PROPSHEETHEADER 结构的版本。 有关详细信息,请参阅“备注”部分。

dwFlags

类型:DWORD

指示创建属性表页时要使用的选项的标志。 此成员可以是以下值的组合。

含义
PSH_DEFAULT (0x00000000) 对所有结构成员使用默认含义,并创建普通属性表。 此标志的值为零,不与其他标志组合。
PSH_AEROWIZARD (0x00004000) 版本 6.00 及更高版本。 创建使用 Aero 样式的向导属性表。 还必须设置PSH_WIZARD标志。 必须使用单线程单元 (STA) 模型。
PSH_HASHELP (0x00000200) 允许属性表页显示 “帮助 ”按钮。 创建页面时,还必须在页面的 PROPSHEETPAGE 结构中设置PSP_HASHELP标志。 如果任一初始属性表页都启用 “帮助 ”按钮,将自动设置PSH_HASHELP。 如果初始页面均未启用 “帮助 ”按钮,则必须显式设置PSH_HASHELP,如果想要在以后添加的任何页面上显示帮助按钮。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_HEADER (0x00080000) 版本 5.80 及更高版本。 指示标头位图将用于 Wizard97 向导。 还必须设置PSH_WIZARD97标志。 如果设置了PSH_USEHBMHEADER标志,则从 hbmHeader 成员获取标头位图。 否则,标头位图是从 pszbmHeader 成员获取的。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_HEADERBITMAP (0x08000000) 版本 6.00 及更高版本。 pszbmHeader 成员指定显示在页眉区域中的位图。 必须与PSH_AEROWIZARD结合使用。
PSH_MODELESS (0x00000400) 使 PropertySheet 函数将属性表创建为无模式对话框,而不是模式对话框。 设置此标志时, PropertySheet 在创建对话框后立即返回, PropertySheet 中的返回值是属性表对话框的窗口句柄。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_NOAPPLYNOW (0x00000080) 删除 “应用 ”按钮。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_NOCONTEXTHELP (0x02000000) 版本 5.80 及更高版本。 删除上下文相关的“帮助”按钮 (“?”) ,通常存在于属性表的标题栏上。 此标志对向导无效。 有关如何删除早期版本的常用控件的标题栏帮助按钮的讨论,请参阅“关于属性表”。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_NOMARGIN (0x10000000) 版本 6.00 或更高版本。 指定页面和框架之间不会插入任何边距。 必须与PSH_AEROWIZARD结合使用。
PSH_PROPSHEETPAGE (0x00000008) 使用 ppsp 成员,并在为属性表创建页面时忽略 phpage 成员。
PSH_PROPTITLE (0x00000001) 指示 pszCaption 是显示属性的内容的名称。 Windows对标题进行版本和语言相关的调整。 例如,在英语中,短语“Properties for”前面是非空 pszCaption (,如果 pszCaption 生成空标题,则标题只是“Properties”) 。 如果省略此标志,则使用 pszCaption 未更改。
PSH_RESIZABLE (0x04000000) 允许用户调整向导的大小。 最大化和最小化按钮显示在向导的框架中,框架的大小。 若要使用此标志,还必须设置PSH_AEROWIZARD。
PSH_RTLREADING (0x00000800) 将属性表或向导窗口设置为从右到左 (RTL) 阅读顺序,适用于希伯来语和阿拉伯语等语言。 如果未指定此标志,则属性表窗口默认为从左到右 (LTR) 阅读顺序,并且向导窗口与当前页的阅读顺序匹配。
PSH_STRETCHWATERMARK (0x00040000) 在 Wizard97 样式的向导中拉伸水印。 此标志与PSH_AEROWIZARD一起不受支持。 此样式标志仅用于为某些应用程序提供向后兼容性。 不建议使用它,并且仅受常见控件版本 4.0 和 4.01 的支持。 对于常见控件版本 5.80 及更高版本,将忽略此标志。
PSH_USECALLBACK (0x00000100) 当发生某些事件时,调用 pfnCallback 参数指定的函数。 有关详细信息,请参阅 PFNPROPSHEETCALLBACK 回调函数的说明。
PSH_USEHBMHEADER (0x00100000) 版本 5.80。 从 hbmHeader 成员而不是 pszbmHeader 成员获取标头位图。 还必须将PSH_AEROWIZARD标志或PSH_WIZARD97标志与PSH_HEADER标志一起设置。
PSH_USEHBMWATERMARK (0x00010000) 版本 5.80。 从 hbmWatermark 成员而不是 pszbmWatermark 成员获取水印位图。 还必须设置PSH_WIZARD97和PSH_WATERMARK。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_USEHICON (0x00000002) 使用 hIcon 作为属性表对话框标题栏中的小图标。
PSH_USEHPLWATERMARK (0x00020000) 版本 5.80。 使用 hplWatermark 成员指向的 HPALETTE 结构,而不是默认调色板来绘制 Wizard97 向导的水印位图和/或标头位图。 还必须设置PSH_WIZARD97,以及PSH_WATERMARK或PSH_HEADER。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_USEICONID (0x00000004) 使用 pszIcon 作为图标资源的名称来加载并用作属性表对话框标题栏中的小图标。
PSH_USEPAGELANG (0x00200000) 版本 5.80。 指定属性表的语言将从第一页的资源中获取。 该页必须由资源标识符指定。
PSH_USEPSTARTPAGE (0x00000040) 在显示属性表的初始页时,使用 pStartPage 成员而不是 nStartPage 成员。
PSH_WATERMARK (0x00008000) 版本 5.80。 指定水印位图将与具有PSP_HIDEHEADER样式的页面上的 Wizard97 向导一起使用。 还必须设置PSH_WIZARD97标志。 水印位图是从 pszbmWatermark 成员获取的,除非设置了PSH_USEHBMWATERMARK。 在这种情况下,标头位图是从 hbmWatermark 成员获取的。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_WIZARD (0x00000020) 创建向导属性表。 使用PSH_AEROWIZARD时,还必须设置此标志。
PSH_WIZARD97 (0x01000000) 版本 5.80。 创建 Wizard97 样式的属性表,该属性表支持内部页眉和外部页面左侧的位图。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_WIZARDCONTEXTHELP (0x00001000) 添加上下文相关的 “帮助 ”按钮 (“?”) ,通常不在向导的标题栏中。 此标志对常规属性表无效。 此标志与PSH_AEROWIZARD一起不受支持。
PSH_WIZARDHASFINISH (0x00000010) 始终在向导上显示 “完成 ”按钮。 还必须设置PSH_WIZARD、PSH_WIZARD97或PSH_AEROWIZARD。
PSH_WIZARD_LITE (0x00400000) 版本 5.80。 使用 Wizard-lite 样式。 此样式在外观上与PSH_WIZARD97相似,但实现方式与PSH_WIZARD非常相似。 对如何设置页面格式有几个限制。 例如,没有强制的边框,并且PSH_WIZARD_LITE样式不会按照 Wizard97 的方式为你绘制水印和标头位图。 此标志与PSH_AEROWIZARD一起不受支持。

hwndParent

类型:HWND

属性表的所有者窗口的句柄。

hInstance

类型: HINSTANCE

用于从中加载图标、标题字符串资源、起始页名称、页眉位图或水印的实例的句柄。 如果 pszIconpszCaptionpStartPagepszbmHeaderpszbmWatermark 成员标识要加载的资源,则必须指定此成员。

hIcon

类型: HICON

要用作属性表对话框标题栏中小图标的图标的句柄。 如果 dwFlags 成员包含PSH_USEHICON,则使用此成员。 此成员声明为 pszIcon 的联合。

pszIcon

类型: LPCTSTR

要用作属性表对话框标题栏中小图标的图标资源。 如果 dwFlags 成员包含PSH_USEICONID,则使用此成员。 此成员可以指定图标资源的标识符或指定图标资源名称的字符串的地址。 在这两种情况下,图标将从 hInstance 成员提供的实例加载。 此成员声明为与 hIcon 的联合。

pszCaption

类型: LPCTSTR

属性表对话框的标题。 此成员可以指定从 hInstance 成员 () 指定的实例加载的字符串资源的标识符或指定标题的字符串的地址。 如果 dwFlags 成员包含PSH_PROPTITLE,则会在标题开头插入 字符串属性 。 对于 Wizard97 向导,将忽略此字段。 对于 Aero 向导,字符串单独用于标题,而不考虑是否设置了PSH_PROPTITLE标志。

nPages

类型: UINT

ppspphpage 数组中提供的属性表页数。

nStartPage

类型: UINT

创建属性表对话框时显示的初始页的从零开始的索引。 如果 dwFlags 成员不包含PSH_USEPSTARTPAGE标志,则使用此成员。 此成员声明为 pStartPage 的联合。

pStartPage

类型: LPCTSTR

创建属性表对话框时显示的初始页的名称。 如果 dwFlags 成员包含PSH_USESTARTPAGE标志,则使用此成员。 此成员可以指定从 hInstance 成员 () 指定的实例加载的字符串资源的标识符或指定名称的字符串的地址。 起始页名称与页面的标题匹配。 此成员声明为 nStartPage 的联合。

ppsp

类型: LPCPROPSHEETPAGE

指向用于定义属性表中页的 PROPSHEETPAGE 结构的数组的指针。 如果 dwFlags 成员不包括PSH_PROPSHEETPAGE,则忽略此成员。 请注意, PROPSHEETPAGE 结构的大小可变。 分析 ppsp 指向的数组的应用程序必须考虑到每个页面的大小。 此成员声明为与 phpage 的联合。

phpage

类型: HPROPSHEETPAGE*

指向属性表页句柄数组的指针。 如果 dwFlags 成员不包括PSH_PROPSHEETPAGE,则使用此成员。 每个句柄必须由对 CreatePropertySheetPage 函数的上一次调用创建。 当 PropertySheet 函数返回时, phpage 数组中的任何 HPROPSHEETPAGE 句柄都将被销毁。 此成员声明为 ppsp 的联合。

pfnCallback

类型: PFNPROPSHEETCALLBACK

指向在发生某些事件时调用的应用程序定义的回调函数的指针。 有关回调函数的详细信息,请参阅 PFNPROPSHEETCALLBACK 回调函数的说明。 如果 dwFlags 成员不包括PSH_USECALLBACK,则忽略此成员。

hbmWatermark

类型: HBITMAP

版本 5.80 或更高版本。 水印位图的句柄。 如果 dwFlags 成员不包括PSH_USEHBMWATERMARK,则忽略此成员。

pszbmWatermark

类型: LPCTSTR

版本 5.80 或更高版本。 要用作水印的位图资源。 此成员可以指定位图资源的标识符或指定位图资源名称的字符串的地址。 如果 dwFlags 成员包含PSH_USEHBMWATERMARK,则忽略此成员。

hplWatermark

类型: HPALETTE

版本 5.80 或更高版本。 用于绘制水印位图和/或标头位图的 HPALETTE 结构。 如果 dwFlags 成员不包括PSH_USEHPLWATERMARK,则忽略此成员。

hbmHeader

类型: HBITMAP

版本 5.80 或更高版本。 标头位图的句柄。 如果 dwFlags 成员不包括PSH_USEHBMHEADER,则忽略此成员。

pszbmHeader

类型: LPCSTR

版本 5.80 或更高版本。 要用作标头的位图资源。 此成员可以指定位图资源的标识符或指定位图资源名称的字符串的地址。 如果 dwFlags 成员包含PSH_USEHBMHEADER,则忽略此成员。

备注

如果用户选择一个设置(如大字体)来放大对话框,则开始和完成页上绘制的水印也将放大。 原始位图的大小和位置将保持不变。 其他区域将填充位图左上角像素的颜色。

PSH_WIZARD、PSH_WIZARD97和PSH_WIZARD_LITE样式相互不兼容。 应仅设置其中一个样式标志。 PSH_AEROWIZARD应与PSH_WIZARD结合使用。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 Prsht.h
Unicode 和 ANSI 名称 PROPSHEETHEADERW (Unicode) 和 PROPSHEETHEADERA (ANSI)