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,则 的字符串 Properties 将插入到标题的开头。 对于 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)