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只在清單結尾的頁面。 如果您想要讓精靈正確地移除頁面,請將動態頁面保留在清單結尾,並跳回永久頁面,然後再刪除頁面。
例如,假設精靈是由簡介頁面、一系列動態頁面和完成頁面所組成,而且您想要在使用者到達完成頁面時刪除動態頁面。
- 精靈會以兩個頁面開頭:「簡介」和「完成」。使用者會在 [簡介] 頁面上開始。
- (使用者簡介)
- Completion
- 當使用者離開 [簡介] 時,精靈會新增動態頁面,並將使用者放在第一個動態頁面,方法是透過DWL_MSGRESULT傳回 (DWL_MSGRESULT ,) 頁面 「Dynamic 1」 的對話方塊識別碼。在此範例中,有三個動態頁面。
- 簡介
- Completion
- Dynamic 1 (User 在這裡)
- 動態 2
- 動態 3
- 當使用者流覽動態頁面至 「Dynamic 3」,然後流覽至下一頁之後,應用程式應該將使用者放在頁面「完成」。同樣地,透過 DWL_MSGRESULT) 頁面 「完成」的對話方塊識別碼傳回 (,即可完成此動作。
- 簡介
- 完成 (使用者在這裡)
- 動態 1
- 動態 2
- 動態 3
- 然後,應用程式就可以安全地移除三個動態頁面, (編號為三到五個) 。
- 簡介
- 完成 (使用者在這裡)
請注意,只有在精靈動態移除頁面時,才需要這項技術。 如果您的精靈只會動態新增頁面,則不需要此程式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限傳統型應用程式] |
標頭 |
|