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。

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

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

版本 5.80。 PropertySheet 返回值承载模式和无模式属性表的不同信息。 在某些情况下,无模式属性表可能需要从 PropertySheet 收到的信息(如果它们已模式)。 特别是,他们可能需要知道ID_PSREBOOTSYSTEM还是ID_PSRESTARTWINDOWS会返回。 无模式属性表可以通过等待 PSM_GETCURRENTPAGEHWND返回 NULL,然后发送 PSM_GETRESULT 消息,检索模式属性表从 PropertySheet 接收的值。

注意

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

要求

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