PROPSHEETHEADER 結構
定義屬性工作表的框架和頁面。
語法
typedef struct {
DWORD dwSize;
DWORD dwFlags;
HWND hwndParent;
HINSTANCE hInstance;
union {
HICON hIcon;
LPCTSTR pszIcon;
};
LPCTSTR pszCaption;
UINT nPages;
union {
UINT nStartPage;
LPCTSTR pStartPage;
};
union {
LPCPROPSHEETPAGE ppsp;
HPROPSHEETPAGE *phpage;
};
PFNPROPSHEETCALLBACK pfnCallback;
union {
HBITMAP hbmWatermark;
LPCTSTR pszbmWatermark;
};
HPALETTE hplWatermark;
union {
HBITMAP hbmHeader;
LPCSTR pszbmHeader;
};
} PROPSHEETHEADER, *LPPROPSHEETHEADER;
成員
dwSize
類型: DWORD
這個結構的大小,以位元組為單位。 屬性工作表管理員會使用此成員來判斷您使用的 PROPSHEETHEADER 結構版本。 如需詳細資訊,請參閱<備註>一節。
dwFlags
類型: DWORD
旗標,指出建立屬性工作表頁面時要使用的選項。 這個成員可以是下列值的組合。
值 | 意義 |
---|---|
PSH_DEFAULT (0x00000000) | 使用所有結構成員的預設意義,並建立一般屬性工作表。 此旗標的值為零,且不會與其他旗標結合。 |
PSH_AEROWIZARD (0x00004000) | 6.00 版和更新版本。 建立精靈屬性工作表,該工作表使用[空中] 樣式。 也必須設定PSH_WIZARD旗標。 必須使用單一線程 Apartment (STA) 模型。 |
PSH_HASHELP (0x00000200) | 允許屬性工作表頁面顯示 [ 說明 ] 按鈕。 建立頁面時,您也必須在頁面 的 PROPSHEETPAGE 結構中設定PSP_HASHELP旗標。 如果有任何初始屬性工作表頁面啟用 [ 說明 ] 按鈕,則會自動設定PSH_HASHELP。 如果沒有任何初始頁面啟用 [ 說明 ] 按鈕,則必須在稍後新增的任何頁面上明確設定PSH_HASHELP。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_HEADER (0x00080000) | 5.80 版和更新版本。 表示標頭點陣圖會與 Wizard97 精靈搭配使用。 您也必須設定PSH_WIZARD97旗標。 如果已設定PSH_USEHBMHEADER旗標,則會從 hbmHeader 成員取得標頭點陣圖。 否則,標頭點陣圖會從 pszbmHeader 成員取得。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_HEADERBITMAP (0x08000000) | 6.00 版和更新版本。 pszbmHeader成員會指定顯示在標頭區域中的點陣圖。 必須與PSH_AEROWIZARD搭配使用。 |
PSH_MODELESS (0x00000400) | 使 PropertySheet 函式將屬性工作表建立為無強制回應對話方塊,而不是強制回應對話方塊。 設定此旗標時, PropertySheet 會在建立對話方塊之後立即傳回, 而 PropertySheet 的傳回值則是屬性工作表對話方塊的視窗控制碼。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_NOAPPLYNOW (0x00000080) | 移除 [ 套用 ] 按鈕。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_NOCONTEXTHELP (0x02000000) | 5.80 版和更新版本。 移除內容相關的 [說明] 按鈕 (「?) ,通常存在於屬性工作表的標題列上。 此旗標對精靈無效。 如需如何移除舊版通用控制項的 [說明] 按鈕的標題列說明按鈕的討論,請參閱關於屬性工作表。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_NOMARGIN (0x10000000) | 6.00 版或更新版本。 指定頁面與框架之間不會插入任何邊界。 必須與PSH_AEROWIZARD搭配使用。 |
PSH_PROPSHEETPAGE (0x00000008) | 使用 ppsp 成員,並在建立屬性工作表的頁面時忽略 phpage 成員。 |
PSH_PROPTITLE (0x00000001) | 指出 pszCaption 是顯示內容的專案名稱。 Windows 會對標題進行版本和語言相依的調整。 例如,在英文中,「Properties for」 片語會前面加上 nonempty pszCaption (,如果pszCaption產生空的標題,則標題只是 「Properties」) 。 如果省略此旗標,則會取消變更使用 pszCaption。 |
PSH_RESIZABLE (0x04000000) | 允許使用者調整精靈的大小。 最大化和最小化按鈕會出現在精靈的框架中,而且框架可調整大小。 若要使用此旗標,您也必須設定PSH_AEROWIZARD。 |
PSH_RTLREADING (0x00000800) | 將屬性工作表或精靈視窗設定為右至左 (RTL) 讀取順序,適用于希伯來文和阿拉伯文等語言。 如果未指定此旗標,則屬性工作表視窗預設為由左至右 (LTR) 讀取順序,而精靈視窗會符合目前頁面的讀取順序。 |
PSH_STRETCHWATERMARK (0x00040000) | 在 Wizard97 樣式精靈中延展浮水印。 此旗標不支援與PSH_AEROWIZARD搭配使用。 此樣式旗標僅包含以提供特定應用程式的回溯相容性。 不建議使用,而且只有通用控制項 4.0 和 4.01 版才支援。 使用通用控制項 5.80 版和更新版本時,會忽略此旗標。 |
PSH_USECALLBACK (0x00000100) | 在特定事件發生時,呼叫 pfnCallback 參數所指定的函式。 如需詳細資訊,請參閱 PFNPROPSHEETCALLBACK 回呼函式的描述。 |
PSH_USEHBMHEADER (0x00100000) | 5.80 版。 從 hbmHeader 成員取得標頭點陣圖,而不是 pszbmHeader 成員。 您也必須將PSH_AEROWIZARD旗標或PSH_WIZARD97旗標與PSH_HEADER旗標一起設定。 |
PSH_USEHBMWATERMARK (0x00010000) | 5.80 版。 從 hbmWatermark 成員取得浮水印點陣圖,而不是 pszbmWatermark 成員。 您也必須設定PSH_WIZARD97和PSH_WATERMARK。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_USEHICON (0x00000002) | 使用 hIcon 做為屬性工作表對話方塊標題列中的小型圖示。 |
PSH_USEHPLWATERMARK (0x00020000) | 5.80 版。 使用hplWatermark成員所指向的HPALETTE結構,而不是預設調色盤來繪製 Wizard97 精靈的浮水印點陣圖和/或標頭點陣圖。 您也必須設定PSH_WIZARD97,以及PSH_WATERMARK或PSH_HEADER。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_USEICONID (0x00000004) | 使用 pszIcon 作為圖示資源的名稱,以載入並使用 作為屬性工作表對話方塊標題列中的小型圖示。 |
PSH_USEPAGELANG (0x00200000) | 5.80 版。 指定屬性工作表的語言會取自第一頁的資源。 該頁面必須由資源識別碼指定。 |
PSH_USEPSTARTPAGE (0x00000040) | 顯示內容表的初始頁面時,使用 pStartPage 成員,而不是 nStartPage 成員。 |
PSH_WATERMARK (0x00008000) | 5.80 版。 指定浮水印點陣圖會與具有PSP_HIDEHEADER樣式之頁面上的 Wizard97 精靈搭配使用。 您也必須設定PSH_WIZARD97旗標。 除非已設定PSH_USEHBMWATERMARK,否則會從 pszbmWatermark 成員取得浮水印點陣圖。 在此情況下,標頭點陣圖是從 hbmWatermark 成員取得。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_WIZARD (0x00000020) | 建立精靈屬性工作表。 使用PSH_AEROWIZARD時,您也必須設定此旗標。 |
PSH_WIZARD97 (0x01000000) | 5.80 版。 建立 Wizard97 樣式屬性工作表,其支援內部頁面頁首和外部頁面左邊的點陣圖。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_WIZARDCONTEXTHELP (0x00001000) | 將內容相關的[說明] 按鈕 (「?) ,精靈標題列通常不存在。 此旗標對一般屬性工作表無效。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
PSH_WIZARDHASFINISH (0x00000010) | 一律會顯示精靈上的 [ 完成] 按鈕。 您也必須設定PSH_WIZARD、PSH_WIZARD97或PSH_AEROWIZARD。 |
PSH_WIZARD_LITE (0x00400000) | 5.80 版。 使用 Wizard-lite 樣式。 此樣式的外觀與PSH_WIZARD97類似,但實作的方式與PSH_WIZARD類似。 頁面的格式化方式有一些限制。 例如,沒有強制執行的框線,而且PSH_WIZARD_LITE樣式不會為您繪製浮水印和標頭點陣圖,就像 Wizard97 一樣。 此旗標不支援與PSH_AEROWIZARD搭配使用。 |
hwndParent
類型: HWND
屬性工作表的擁有者視窗控制碼。
hInstance
類型: HINSTANCE
處理要從中載入圖示、標題字串資源、起始頁面名稱、標頭點陣圖或浮水印的實例。 如果 pszIcon、 pszCaption、 pStartPage、 pszbmHeader或 pszbmWatermark 成員識別要載入的資源,則必須指定此成員。
hIcon
類型: HICON
要當做屬性工作表對話方塊標題列中小圖示使用的圖示控制碼。 如果 dwFlags 成員包含PSH_USEHICON,則會使用此成員。 這個成員會宣告為 pszIcon的聯集。
pszIcon
類型: LPCTSTR
要用來作為屬性工作表對話方塊標題列中小圖示的圖示資源。 如果 dwFlags 成員包含PSH_USEICONID,則會使用此成員。 這個成員可以指定圖示資源的識別碼,或指定圖示資源名稱的字串位址。 在這兩種情況下,圖示都會從 hInstance 成員所提供的實例載入。 此成員會宣告為 具有 hIcon的等位。
pszCaption
類型: LPCTSTR
屬性工作表對話方塊的標題。 這個成員可以指定從 hInstance 成員所指定的實例載入的字串資源識別碼 () 或指定標題的字串位址。 如果 dwFlags 成員包含PSH_PROPTITLE,則會在標題開頭插入 的字串 Properties 。 精靈97 精靈會忽略此欄位。 針對[標題精靈],不論是否已設定PSH_PROPTITLE旗標,字串都會單獨用於標題。
nPages
類型: UINT
ppsp或phpage陣列中提供的屬性工作表頁數。
nStartPage
類型: UINT
建立屬性工作表對話方塊時所顯示之初始頁面之以零起始的索引。 如果 dwFlags 成員不包含PSH_USEPSTARTPAGE旗標,則會使用此成員。 這個成員會宣告為 pStartPage的聯集。
pStartPage
類型: LPCTSTR
建立屬性工作表對話方塊時所顯示的初始頁面名稱。 如果 dwFlags 成員包含 PSH_USESTARTPAGE 旗標,則會使用此成員。 這個成員可以指定從 hInstance 成員所指定實例 (載入的字串資源識別碼) 或指定名稱的字串位址。 起始頁名稱會與頁面的標題相符。 此成員會宣告為 nStartPage的聯集。
ppsp
類型: LPCPROPSHEETPAGE
屬性工作表中定義頁面之 PROPSHEETPAGE 結構的陣列指標。 如果 dwFlags 成員不包含PSH_PROPSHEETPAGE,則會忽略此成員。 請注意, PROPSHEETPAGE 結構的大小是可變的。 剖析 ppsp 所指向之陣列的應用程式必須將每個頁面的大小納入考慮。 這個成員會宣告為 phpage的聯集。
phpage
類型: HPROPSHEETPAGE*
屬性工作表頁面控制碼陣列的指標。 如果 dwFlags 成員不包含PSH_PROPSHEETPAGE,則會使用此成員。 每個控制碼都必須由先前呼叫 CreatePropertySheetPage 函式 所建立。 當 PropertySheet函式傳回時,phpage陣列中的任何 HPROPSHEETPAGE 控制碼都會遭到終結。 這個成員會宣告為 ppsp的聯集。
pfnCallback
類型: PFNPROPSHEETCALLBACK
應用程式定義的回呼函式的指標,該函式會在發生特定事件時呼叫。 如需回呼函式的詳細資訊,請參閱 PFNPROPSHEETCALLBACK 回 呼函式的描述。 如果 dwFlags 成員不包含PSH_USECALLBACK,則會忽略此成員。
hbmWatermark
類型: HBITMAP
5.80 版或更新版本。 浮水印點陣圖的控制碼。 如果 dwFlags 成員不包含PSH_USEHBMWATERMARK,則會忽略此成員。
pszbmWatermark
類型: LPCTSTR
5.80 版或更新版本。 要當做浮水印使用的點陣圖資源。 這個成員可以指定點陣圖資源的識別碼或指定點陣圖資源名稱的字串位址。 如果 dwFlags 成員包含PSH_USEHBMWATERMARK,則會忽略此成員。
hplWatermark
類型: HPALETTE
5.80 版或更新版本。 用於繪製浮水印點陣圖和/或標頭點陣圖的HPALETTE結構。 如果 dwFlags 成員不包含PSH_USEHPLWATERMARK,則會忽略此成員。
hbmHeader
類型: HBITMAP
5.80 版或更新版本。 標頭點陣圖的控制碼。 如果 dwFlags 成員不包含PSH_USEHBMHEADER,則會忽略此成員。
pszbmHeader
類型: LPCSTR
5.80 版或更新版本。 要作為標頭使用的點陣圖資源。 這個成員可以指定點陣圖資源的識別碼或指定點陣圖資源名稱的字串位址。 如果 dwFlags 成員包含PSH_USEHBMHEADER,則會忽略此成員。
備註
如果使用者選擇大型字型之類的設定,這會放大對話方塊,則會放大開始和完成頁面上繪製浮水印。 原始點陣圖的大小和位置會維持不變。 其他區域會填入點陣圖左上角圖元的色彩。
PSH_WIZARD、PSH_WIZARD97和PSH_WIZARD_LITE樣式互不相容。 應該只設定其中一個樣式旗標。 PSH_AEROWIZARD應該與PSH_WIZARD結合。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | Prsht.h |
Unicode 與 ANSI 名稱 | PROPSHEETHEADERW (Unicode) 和 PROPSHEETHEADERA (ANSI) |