共用方式為


PropertySheetW 函式 (prsht.h)

建立屬性表,並加入指定之屬性表頁首結構中定義的頁面。

語法

INT_PTR PropertySheetW(
  LPCPROPSHEETHEADERW 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 中引進)