PAGESETUPDLGA 結構 (commdlg.h)
包含 PageSetupDlg 函式用來初始化 [頁面設定 ] 對話框的資訊。 使用者關閉對話框之後,系統會傳回此結構中使用者定義頁面參數的相關信息。
語法
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_MARGINS 和 PSD_MINMARGINS 旗標,則會忽略此旗標。 |
|
停用邊界控制件,防止使用者設定邊界。 |
|
停用方向控制件,防止使用者設定頁面方向。 |
|
防止對話框繪製範例頁面的內容。 如果您啟用 PagePaintHook 攔截程式,您仍然可以繪製範例頁面的內容。 |
|
停用紙張控件,防止用戶設定頁面參數,例如紙張大小和來源。 |
|
已過時。
Windows XP/2000: 停用 [印表機] 按鈕,防止使用者叫用包含其他印表機設定資訊的對話框。 |
|
啟用 lpfnPagePaintHook 成員中指定的攔截程式。 |
|
啟用 lpfnPageSetupHook 成員中指定的攔截程式。 |
|
指出 hInstance 和 lpPageSetupTemplateName 成員會指定要用來取代預設範本的對話框範本。 |
|
指出 hPageSetupTemplate 成員會識別包含預先載入對話框範本的數據區塊。 如果指定此旗標,系統會忽略 lpPageSetupTemplateName 成員。 |
|
表示百分之一公厘是邊界和紙張大小的度量單位。 rtMargin、rtMinMargin 和 ptPaperSize 成員中的值以百分之一公厘為單位。 您可以在輸入上設定此旗標,以覆寫用戶地區設定的預設度量單位。 當函式傳回時,對話框會設定此旗標來指出所使用的單位。 |
|
表示千分之一英吋是邊界和紙張大小的度量單位。 rtMargin、rtMinMargin 和 ptPaperSize 成員中的值以千分之一英吋為單位。 您可以在輸入上設定此旗標,以覆寫用戶地區設定的預設度量單位。 當函式傳回時,對話框會設定此旗標來指出所使用的單位。 |
|
保留的。 |
|
讓系統使用 rtMargin 成員中指定的值做為左、上、右和下邊界的初始寬度。 如果未設定 PSD_MARGINS ,系統會將所有邊界的初始寬度設定為1英吋。 |
|
讓系統使用 rtMinMargin 成員中指定的值,做為左邊界、上邊界、右邊界的最小允許寬度。 系統可防止使用者輸入小於指定最小值的寬度。 如果未指定 PSD_MINMARGINS ,系統會將允許的最小寬度設定為印表機所允許的寬度下限。 |
|
隱藏並停用 [ 網络 ] 按鈕。 |
|
當沒有預設印表機時,防止系統顯示警告訊息。 |
|
PageSetupDlg 不會顯示對話框。 相反地,它會設定 hDevNames 和 hDevMode 成員來處理針對系統預設印表機初始化的 DEVMODE 和 DEVNAMES 結構。 如果 hDevNames 或 hDevMode 不是 NULL,PageSetupDlg 會傳回錯誤。 |
|
導致對話框顯示 [ 說明 ] 按鈕。 hwndOwner 成員必須指定視窗,以接收當使用者按兩下 [說明] 按鈕時,對話框所傳送的 HELPMSGSTRING 已註冊訊息。 |
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 成員所識別之模組中的對話框範本資源名稱。 此範本會取代標準對話框範本。 對於編號的對話框資源, lpPageSetupTemplateName 可以是 MAKEINTRESOURCE 宏所傳回的值。 除非在 Flags 成員中設定PSD_ENABLEPAGESETUPTEMPLATE旗標,否則會忽略此成員。
hPageSetupTemplate
類型: HGLOBAL
如果在 Flags 成員中設定PSD_ENABLEPAGESETUPTEMPLATEHANDLE旗標,hPageSetupTemplate 是包含對話框範本的記憶體物件的句柄。
備註
如果未指定 PSD_INHUNDREDTHSOFMILLIMETERS 和 PSD_INTHOUSANDTHSOFINCHES 旗標,系統會查詢預設用戶地區設定的 LOCALE_IMEASURE 值,以判斷 (百分之一公厘或千分之一英吋的測量單位,) 邊界寬度和紙張大小。
如果 hDevNames 和 hDevMode 都有有效的句柄,而且 DEVNAMES 結構的 wDeviceOffset 成員所指定的印表機名稱與 DEVMODE 結構的 dmDeviceName 成員所指定的名稱不同,則系統預設會使用 wDeviceOffset 所指定的名稱。
注意
commdlg.h 標頭會將 PAGESETUPDLG 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
標頭 | commdlg.h (包含 Windows.h) |
另請參閱
概念
其他資源
參考