共用方式為


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 設定為 NULL

Flags

類型:DWORD

一組位旗標,可用來初始化 頁面設定 對話框。 當對話框傳回時,它會設定這些旗標來指出用戶的輸入。 這個成員可以是下列其中一或多個值。

價值 意義
PSD_DEFAULTMINMARGINS
0x00000000
設定使用者可以為頁面邊界指定的最小值,以做為印表機允許的最小邊界。 這是預設值。 如果同時指定 PSD_MARGINSPSD_MINMARGINS 旗標,則會忽略此旗標。
PSD_DISABLEMARGINS
0x00000010
停用邊界控制件,防止使用者設定邊界。
PSD_DISABLEORIENTATION
0x00000100
停用方向控制件,防止使用者設定頁面方向。
PSD_DISABLEPAGEPAINTING
0x00080000
防止對話框繪製範例頁面的內容。 如果您啟用 PagePaintHook 攔截程式,您仍然可以繪製範例頁面的內容。
PSD_DISABLEPAPER
0x00000200
停用紙張控件,防止用戶設定頁面參數,例如紙張大小和來源。
PSD_DISABLEPRINTER
0x00000020
過時。

Windows XP/2000:停用 [印表機] 按鈕,防止使用者叫用包含其他印表機設定資訊的對話框。

PSD_ENABLEPAGEPAINTHOOK
0x00040000
啟用 lpfnPagePaintHook 成員中指定的攔截程式。
PSD_ENABLEPAGESETUPHOOK
0x00002000
啟用 lpfnPageSetupHook 成員中指定的攔截程式。
PSD_ENABLEPAGESETUPTEMPLATE
0x00008000
表示 hInstancelpPageSetupTemplateName 成員指定要用來取代預設範本的對話框範本。
PSD_ENABLEPAGESETUPTEMPLATEHANDLE
0x00020000
表示 hPageSetupTemplate 成員會識別包含預先載入對話框範本的數據區塊。 如果指定此旗標,系統會忽略 lpPageSetupTemplateName 成員。
PSD_INHUNDREDTHSOFMILLIMETERS
0x00000008
表示百分之一公厘是邊界和紙張大小的度量單位。 rtMarginrtMinMarginptPaperSize 成員中的值以百分之百公厘為單位。 您可以在輸入上設定此旗標,以覆寫用戶地區設定的預設度量單位。 當函式傳回時,對話框會設定此旗標來指出所使用的單位。
PSD_INTHOUSANDTHSOFINCHES
0x00000004
表示千分之一英吋是邊界和紙張大小的度量單位。 rtMargin中的值、rtMinMargin,以及 ptPaperSize 成員的值為千分之一英吋。 您可以在輸入上設定此旗標,以覆寫用戶地區設定的預設度量單位。 當函式傳回時,對話框會設定此旗標來指出所使用的單位。
PSD_INWININIINTLMEASURE
0x00000000
保留。
PSD_MARGINS
0x00000002
讓系統使用 rtMargin 中指定的值, 成員做為左邊界、上邊界、右邊界和下邊界的初始寬度。 如果未設定 PSD_MARGINS,系統會將所有邊界的初始寬度設定為一英吋。
PSD_MINMARGINS
0x00000001
讓系統使用 rtMinMargin 成員中指定的值,做為左、上、右和下邊界的最小允許寬度。 系統可防止使用者輸入小於指定最小值的寬度。 如果未指定 PSD_MINMARGINS,系統會將印表機允許的寬度下限設定為允許的寬度。
PSD_NONETWORKBUTTON
0x00200000
隱藏並停用 [網络] 按鈕。
PSD_NOWARNING
0x00000080
當沒有預設印表機時,防止系統顯示警告訊息。
PSD_RETURNDEFAULT
0x00000400

PageSetupDlg 不會顯示對話方塊。 相反地,它會設定 hDevNameshDevMode 成員來處理,以 DEVMODE,並 針對系統默認列印機初始化的 DEVNAMES 結構。 PageSetupDlg 如果 hDevNameshDevMode 不是 NULL,就會傳回錯誤。

PSD_SHOWHELP
0x00000800
讓對話框顯示 [說明] 按鈕 hwndOwner 成員必須指定視窗,以接收使用者按兩下 [說明] 按鈕時,對話框所傳送 HELPMSGSTRING 訊息。

ptPaperSize

類型:POINT

用戶選取之紙張的維度。 PSD_INTHOUSANDTHSOFINCHESPSD_INHUNDREDTHSOFMILLIMETERS 旗標表示度量單位。

rtMinMargin

類型:RECT

左、上、右和下邊界的最小允許寬度。 如果未設定 PSD_MINMARGINS 旗標,系統就會忽略這個成員。 這些值必須小於或等於 rtMargin 成員中指定的值。 PSD_INTHOUSANDTHSOFINCHESPSD_INHUNDREDTHSOFMILLIMETERS 旗標表示度量單位。

rtMargin

類型:RECT

左、上、右和下邊界的寬度。 如果您設定 PSD_MARGINS 旗標,rtMargin 指定初始邊界值。 PageSetupDlg 傳回時,rtMargin 包含使用者所選取的邊界寬度。 PSD_INHUNDREDTHSOFMILLIMETERSPSD_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 成員所識別之模組中的對話框範本資源名稱。 此範本會取代標準對話框範本。 針對編號對話框資源,lpPageSetupTemplateName 可以是 MAKEINTRESOURCE 巨集 傳回的值。 除非在 Flags 成員中設定 PSD_ENABLEPAGESETUPTEMPLATE 旗標,否則會忽略此成員。

hPageSetupTemplate

類型:HGLOBAL

如果在 Flags 成員中設定 PSD_ENABLEPAGESETUPTEMPLATEHANDLE 旗標,hPageSetupTemplate 是包含對話框範本的記憶體物件句柄。

言論

如果未指定 PSD_INHUNDREDTHSOFMILLIMETERSPSD_INTHOUSANDTHSOFINCHES 旗標,系統會查詢預設用戶地區設定的 LOCALE_IMEASURE 值,以判斷邊界寬度和紙張大小的測量單位(百分之一或千英寸)。

如果 hDevNameshDevMode 都有有效的句柄,且 wDeviceOffsetDEVNAMES 結構的成員與 DEVMODE 結構 dmDeviceName 成員所指定的名稱不同, 系統預設會使用 wDeviceOffset 所指定的名稱,

注意

commdlg.h 標頭會根據 UNICODE 預處理器常數的定義,將 PAGESETUPDLG 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 commdlg.h (包括 Windows.h)

另請參閱

通用對話框連結庫

概念

DEVMODE

DEVNAMES

MAKEINTRESOURCE

其他資源

PagePaintHook

PageSetupDlg

PageSetupHook

參考

WM_INITDIALOG