PropertySheetA 函数 (prsht.h)

创建属性表并添加在指定的属性表标题结构中定义的页面。

语法

INT_PTR PropertySheetA(
  LPCPROPSHEETHEADERA unnamedParam1
);

参数

unnamedParam1

类型: LPCPROPSHEETHEADER

指向 PROPSHEETHEADER 结构的指针,该结构定义属性表的框架和页面。

返回值

类型: INT_PTR

对于模式属性表,返回值如下所示:

>=1 用户保存了更改。
0 用户未保存任何更改。
-1 出现了错误。
 

对于无模式属性表,返回值是属性表的窗口句柄。

以下返回值具有特殊含义。

返回代码 说明
ID_PSREBOOTSYSTEM
页面将 PSM_REBOOTSYSTEM 消息发送到属性表。 必须重启计算机才能使用户的更改生效。
ID_PSRESTARTWINDOWS
页面将 PSM_RESTARTWINDOWS 消息发送到属性表。 必须重启 Windows 才能使用户的更改生效。

注解

若要检索扩展的错误信息,请调用 GetLastError

如果尝试向属性表添加超过 99 页,此函数将失败,但没有指示错误原因: PropertySheet 返回值 -1,但 GetLastError 返回 0。

注意 以下说明仅引用不使用 Aero 向导样式的向导, (PSH_AEROWIZARD) 或非向导属性表。
 
默认情况下, PropertySheet 函数创建模式对话框。 如果 PROPSHEETHEADER 结构的 dwFlags 成员指定PSH_MODELESS标志,PropertySheet 将创建一个无模式对话框,并在创建后立即返回该对话框。 在这种情况下, PropertySheet 返回值是无模式对话框的窗口句柄。

对于无模式属性表,消息循环应使用 PSM_ISDIALOGMESSAGE 将消息传递到属性表对话框。 消息循环应使用 PSM_GETCURRENTPAGEHWND 来确定何时销毁对话框。 当用户单击“ 确定” 或“ 取消 ”按钮时, PSM_GETCURRENTPAGEHWND 返回 NULL。 然后,可以使用 DestroyWindow 函数销毁对话框。

版本 5.80。 PropertySheet 返回值为模式属性表和无模式属性表携带不同的信息。 在某些情况下,无模式属性表可能需要从 PropertySheet 接收的信息(如果它们是模式的)。 具体而言,他们可能需要知道是返回ID_PSREBOOTSYSTEM还是ID_PSRESTARTWINDOWS。 无模式属性表可以检索模式属性表从 PropertySheet 接收的值,方法是等待 PSM_GETCURRENTPAGEHWND 返回 NULL ,然后发送 PSM_GETRESULT 消息。

注意

prsht.h 标头将 PropertySheet 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 prsht.h
Library Comctl32.lib
DLL Comctl32.dll
API 集 Windows 10版本 10.0.14393 中引入的 ext-ms-win-shell-comctl32-window-l1-1-0 ()