PAGESETUPDLGA 結構 (commdlg.h)
包含 PageSetupDlg 函式用來初始化 Page Setup 對話框的資訊。 當使用者關閉對話框之後,系統會傳回這個結構中使用者定義頁面參數的相關信息。
語法
typedef struct tagPSDA {
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
DWORD Flags;
POINT ptPaperSize;
RECT rtMinMargin;
RECT rtMargin;
HINSTANCE hInstance;
LPARAM lCustData;
LPPAGESETUPHOOK lpfnPageSetupHook;
LPPAGEPAINTHOOK lpfnPagePaintHook;
LPCSTR lpPageSetupTemplateName;
HGLOBAL hPageSetupTemplate;
} PAGESETUPDLGA, *LPPAGESETUPDLGA;
成員
lStructSize
類型:DWORD
這個 結構的大小,以位元組為單位。
hwndOwner
類型:HWND
擁有對話框之視窗的句柄。 此成員可以是任何有效的視窗句柄,如果對話框沒有擁有者,則可以 NULL。
hDevMode
類型:HGLOBAL
全域記憶體物件的句柄,其中包含 DEVMODE 結構。 在輸入上,如果指定句柄,則會使用對應 DEVMODE 結構中的值來初始化對話框中的控件。 在輸出中,對話框會將 hDevMode 設定為包含指定用戶選取之值的 DEVMODE 結構全域記憶體句柄。 如果使用者的選擇無法使用,對話框會將 hDevMode 設定為 NULL。
hDevNames
類型:HGLOBAL
全域記憶體物件的句柄,其中包含 DEVNAMES 結構。 此結構包含三個字串,可指定驅動程式名稱、印表機名稱和輸出埠名稱。 在輸入上,如果指定句柄,則會使用對應 DEVNAMES 結構中的字串來初始化對話框中的控件。 在輸出中,對話框會將 hDevNames 設定為全域記憶體句柄,以 DEVNAMES 結構,其中包含指定使用者選取專案的字元串。 如果使用者的選取項目無法使用,對話框會將 hDevNames
Flags
類型:DWORD
一組位旗標,可用來初始化 頁面設定 對話框。 當對話框傳回時,它會設定這些旗標來指出用戶的輸入。 這個成員可以是下列其中一或多個值。
價值 | 意義 |
---|---|
|
設定使用者可以為頁面邊界指定的最小值,以做為印表機允許的最小邊界。 這是預設值。 如果同時指定 PSD_MARGINS 和 PSD_MINMARGINS 旗標,則會忽略此旗標。 |
|
停用邊界控制件,防止使用者設定邊界。 |
|
停用方向控制件,防止使用者設定頁面方向。 |
|
防止對話框繪製範例頁面的內容。 如果您啟用 PagePaintHook 攔截程式,您仍然可以繪製範例頁面的內容。 |
|
停用紙張控件,防止用戶設定頁面參數,例如紙張大小和來源。 |
|
過時。
Windows XP/2000:停用 [印表機] 按鈕,防止使用者叫用包含其他印表機設定資訊的對話框。 |
|
啟用 lpfnPagePaintHook 成員中指定的攔截程式。 |
|
啟用 lpfnPageSetupHook 成員中指定的攔截程式。 |
|
表示 hInstance 和 lpPageSetupTemplateName 成員指定要用來取代預設範本的對話框範本。 |
|
表示 hPageSetupTemplate 成員會識別包含預先載入對話框範本的數據區塊。 如果指定此旗標,系統會忽略 lpPageSetupTemplateName 成員。 |
|
表示百分之一公厘是邊界和紙張大小的度量單位。 rtMargin、rtMinMargin和 ptPaperSize 成員中的值以百分之百公厘為單位。 您可以在輸入上設定此旗標,以覆寫用戶地區設定的預設度量單位。 當函式傳回時,對話框會設定此旗標來指出所使用的單位。 |
|
表示千分之一英吋是邊界和紙張大小的度量單位。 rtMargin中的值、rtMinMargin,以及 ptPaperSize 成員的值為千分之一英吋。 您可以在輸入上設定此旗標,以覆寫用戶地區設定的預設度量單位。 當函式傳回時,對話框會設定此旗標來指出所使用的單位。 |
|
保留。 |
|
讓系統使用 rtMargin 中指定的值, 成員做為左邊界、上邊界、右邊界和下邊界的初始寬度。 如果未設定 PSD_MARGINS,系統會將所有邊界的初始寬度設定為一英吋。 |
|
讓系統使用 rtMinMargin 成員中指定的值,做為左、上、右和下邊界的最小允許寬度。 系統可防止使用者輸入小於指定最小值的寬度。 如果未指定 PSD_MINMARGINS,系統會將印表機允許的寬度下限設定為允許的寬度。 |
|
隱藏並停用 [網络] 按鈕。 |
|
當沒有預設印表機時,防止系統顯示警告訊息。 |
|
PageSetupDlg 不會顯示對話方塊。 相反地,它會設定 hDevNames 和 hDevMode 成員來處理,以 DEVMODE,並 針對系統默認列印機初始化的 DEVNAMES 結構。 PageSetupDlg 如果 hDevNames 或 hDevMode 不是 NULL,就會傳回錯誤。 |
|
讓對話框顯示 [說明] 按鈕 |
ptPaperSize
類型:POINT
用戶選取之紙張的維度。 PSD_INTHOUSANDTHSOFINCHES 或 PSD_INHUNDREDTHSOFMILLIMETERS 旗標表示度量單位。
rtMinMargin
類型:RECT
左、上、右和下邊界的最小允許寬度。 如果未設定 PSD_MINMARGINS 旗標,系統就會忽略這個成員。 這些值必須小於或等於 rtMargin 成員中指定的值。 PSD_INTHOUSANDTHSOFINCHES 或 PSD_INHUNDREDTHSOFMILLIMETERS 旗標表示度量單位。
rtMargin
類型:RECT
左、上、右和下邊界的寬度。 如果您設定 PSD_MARGINS 旗標,rtMargin 指定初始邊界值。 PageSetupDlg 傳回時,rtMargin 包含使用者所選取的邊界寬度。 PSD_INHUNDREDTHSOFMILLIMETERS 或 PSD_INTHOUSANDTHSOFINCHES 旗標表示度量單位。
hInstance
類型:HINSTANCE
如果在 Flags 成員中設定 PSD_ENABLEPAGESETUPTEMPLATE 旗標,hInstance 是包含 lpPageSetupTemplateName 成員所命名之對話框範本的應用程式或模組實例句柄。
lCustData
類型:LPARAM
系統傳遞給 lpfnPageSetupHook 成員所識別的攔截程式的應用程式定義數據。 當系統將 WM_INITDIALOG 訊息傳送至攔截程式時,訊息的 lParam 參數是建立對話框時所指定之 PAGESETUPDLG 結構的指標。 攔截程式可以使用這個指標來取得 lCustData 值。
lpfnPageSetupHook
類型:LPPAGESETUPHOOK
PageSetupHook 攔截程式的指標,可處理適用於對話框的訊息。 除非在 Flags 成員中設定 PSD_ENABLEPAGESETUPHOOK 旗標,否則會忽略此成員。
lpfnPagePaintHook
類型:LPPAGEPAINTHOOK
PagePaintHook 攔截程式的指標,每當重新繪製範例頁面時,就會從對話框中接收 WM_PSD_* 訊息。 藉由處理訊息,攔截程式可以自定義範例頁面的外觀。 除非在 Flags 成員中設定 PSD_ENABLEPAGEPAINTHOOK 旗標,否則會忽略此成員。
lpPageSetupTemplateName
類型:LPCTSTR
hInstance 成員所識別之模組中的對話框範本資源名稱。 此範本會取代標準對話框範本。 針對編號對話框資源,
hPageSetupTemplate
類型:HGLOBAL
如果在 Flags 成員中設定 PSD_ENABLEPAGESETUPTEMPLATEHANDLE 旗標,hPageSetupTemplate 是包含對話框範本的記憶體物件句柄。
言論
如果未指定 PSD_INHUNDREDTHSOFMILLIMETERS 和 PSD_INTHOUSANDTHSOFINCHES 旗標,系統會查詢預設用戶地區設定的 LOCALE_IMEASURE 值,以判斷邊界寬度和紙張大小的測量單位(百分之一或千英寸)。
如果 hDevNames 和 hDevMode 都有有效的句柄,且 wDeviceOffsetDEVNAMES 結構的成員與 DEVMODE 結構 dmDeviceName 成員所指定的名稱不同, 系統預設會使用 wDeviceOffset 所指定的名稱,。
注意
commdlg.h 標頭會根據 UNICODE 預處理器常數的定義,將 PAGESETUPDLG 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | commdlg.h (包括 Windows.h) |
另請參閱
概念
其他資源
參考