PSN_WIZBACK通知代码

通知页面用户已单击向导中的“ 后退 ”按钮。 此通知代码以 WM_NOTIFY 消息的形式发送。

PSN_WIZBACK 

    lppsn = (LPPSHNOTIFY) lParam; 

参数

lParam

指向包含通知代码相关信息的 PSHNOTIFY 结构的指针。 此结构包含一个 NMHDR 结构作为其第一个成员 hdr。此 NMHDR 结构的 hwndFrom 成员包含属性表的句柄。 PSHNOTIFY 结构的 lParam 成员不包含任何信息。

返回值

返回 0 以允许向导转到上一页。 返回 -1 以阻止向导更改页面。 若要显示特定页面,请返回其对话资源标识符。 如果使用 PSP_DLGINDIRECT 标志指定对话,则此通知将返回指向对话框模板的指针。

备注

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

case PSN_WIZBACK :
    SetWindowLong(hDlg, DWL_MSGRESULT, 0);
    break;

case PSN_WIZNEXT :
    ...

注意

发送PSN_WIZBACK通知代码时,属性表正在操作页面列表。 可以添加、插入或删除页面以响应这些通知代码,但如果在当前页之前插入或删除页面,则必须特别小心。

如果在当前页之前插入或删除页面,则必须通过DWL_MSGRESULT返回 () 非零值以指定所需的新页。 但请注意,如果插入或删除位于当前页面之前的页面 (的索引小于当前页) , PSN_KILLACTIVE 可能会发送到错误的页面。

出于此原因,建议为响应 PSN_WIZNEXT 动态添加和删除页面的向导,PSN_WIZBACK仅对列表末尾的页面执行此操作。 如果希望向导准确删除页面,请将动态页面保留在列表末尾,并在删除它们之前跳转回永久页面。

例如,假设向导由一个介绍页、一系列动态页面和一个完成页组成,并且你想要在用户到达完成页面时删除动态页面。

  1. 向导以两页开头,即“简介”和“完成”。用户从“简介”页开始。
    1. 用户 (简介)
    2. Completion
  2. 当用户离开“简介”时,向导会添加动态页面,并通过DWL_MSGRESULT) 页面“Dynamic 1”的对话标识符返回 ( ,将用户置于第一个动态页面。在此示例中,有三个动态页面。
    1. 简介
    2. Completion
    3. 动态 1 (用户)
    4. 动态 2
    5. Dynamic 3
  3. 在用户浏览动态页面到“Dynamic 3”,然后导航到下一页之后,应用程序应将用户置于页面“完成”。同样,这是通过DWL_MSGRESULT) 页面“完成”对话框标识符返回 ( 来完成的。
    1. 简介
    2. 完成 (用户在此处)
    3. 动态 1
    4. 动态 2
    5. Dynamic 3
  4. 然后,应用程序可以安全地删除三个动态页面 (编号为 3 到 5 个) 。
    1. 简介
    2. 完成 (用户在此处)

请注意,仅当向导动态删除页面时,此方法才是必需的。 如果向导仅动态添加页面,则无需执行此过程。

要求

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