PSN_APPLY通知代码

发送到属性表中的每个页面,以指示用户已单击“确定”、“关闭”或“应用”按钮,并希望所有更改生效。 此通知代码以 WM_NOTIFY 消息的形式发送。

PSN_APPLY 

    lppsn = (LPPSHNOTIFY) lParam; 

参数

lParam

指向 PSHNOTIFY 结构的指针,该结构包含有关通知代码的信息,包括页面 ID。

返回值

设置PSNRET_NOERROR以指示对此页面所做的更改有效且已应用。 如果PSNRET_NOERROR设置的所有页面,则可以销毁属性表。 若要指示对此页所做的更改无效并防止属性表被销毁,请设置以下返回值之一:

  • PSNRET_INVALID。 属性表不会被销毁,焦点将返回到此页面。
  • PSNRET_INVALID_NOCHANGEPAGE。 属性表不会被销毁,当按下按钮时,焦点将返回到具有焦点的页面。

若要设置返回值,页面的对话框过程必须使用DWL_MSGRESULT值调用 SetWindowLong 函数,并且对话框过程必须返回 TRUE

备注

当用户单击“确定”、“应用”或“关闭”按钮时,属性表会向活动页面发送 PSN_KILLACTIVE 通知,使其有机会验证用户的更改。 如果更改有效,则属性表会向每个页面发送PSN_APPLY通知代码,并指示其将新属性应用于相应的项。

注意

发送PSN_APPLY通知代码时,属性表正在操作页面列表。 处理此通知时,请勿尝试添加、删除或插入页面。 这样做会产生不可预知的结果。

如果用户单击确定”按钮,则 lParam 指向的PSHNOTIFY 结构的 lParam 成员设置为 TRUE。 如果已发送PSM_CANCELTOCLOSE消息,并且用户单击“关闭”按钮,则它还设置为 TRUE。 如果用户单击“应用”按钮,则会将其设置为 FALSE

PSHNOTIFY 结构包含 NMHDR 结构作为其第一个成员 hdr。此 NMHDR 结构的 hwndFrom 成员包含属性表的句柄。

处理此通知代码时,请勿调用 EndDialog 函数。

如果用户单击“确定”按钮,并且每个页面都返回PSNRET_NOERROR值以响应 PSN_APPLY,则模式属性表将被销毁。 如果任何页面返回PSNRET_INVALID或PSNRET_INVALID_NOCHANGEPAGE,应用过程将立即取消。 取消页面后面的页面不会收到PSN_APPLY通知代码。

若要接收此通知代码,页面必须将DWL_MSGRESULT值设置为 FALSE 以响应 PSN_KILLACTIVE 通知代码。

注意

使用 Aero 向导样式 (PSH_AEROWIZARD ) 时,不支持此通知代码。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Prsht.h