PrintDlg

函式功能:該函式顯示列印對話框或列印設定對話框。列印對話框使用戶指定特殊的列印工作的特點。 列印設定對話框不能套用在新應用程式中,它已經被PageSetupDlg函式創建的列印設定公共對話框所替代。

PrintDlg函式

函式原型:BOOL PrintDlg(LPPRINTDLG lppd);

參數:

lppd:指向一個含有初始化對話框信息的PRINTDLG結構。當PRINTDLG函式返回時,此結構含有關用戶選擇的信息。

返回值:如果用戶點擊OK按鈕,返回值為非零值。由lppd參數指向的PRINTDLG結構中的成員顯示用戶的選擇。如果用戶取消或關閉Print或PrinterSetup對話框或錯誤出現,返回值為零。若想獲得更多的錯誤信息,請調用CommDlgError函式。如果用戶取消或關閉對話框,函式返回零值:否則,返回值如下:

CDERR_FINDRESFAILURE PDERR_CRETELCFAILUPE

COERR_INITIALIZATION PDERR_DEFAULTDIFFERENT

CDERR_LOADRESFAILURE PDERR_DNDMMISMATCH

CDERR_LOADSTRFAILURE PDERR_GETDEVMODEFAIL

CKERR_LOCKRESFAILURE PDERR_INITFAILURE

CDERR_MEMALLOCFAILURE PDERR LOADDRVFAILURE

CDERR_MEMLOCKFAILURE PDERR_NODEFAULTPRN

CDERR_NOHINSTANCE PDERR_NODEVICES

CDFRR_NOHOOK PDERR_PARSEFAILURE

CDERR_NOTEMPLATE PDERR_PRINTERNOTFOUND

CDERR_STRUCTSIZE PDERR_RETDEFFAILURE

備註:如果掛鈎函式(由PRINTDLG結構中的lpfnPrintHOOk成員或lpfnSetupHOOk成員指向的)處理WM_CTLCOLORDLG信息,掛鈎函式必須返回一個刷子句柄,此刷了用來刷控制背景。

Windows NT 5.0以及以後的版本:可用PrintDlgEx函式來顯示一個Print屬性頁,此屬性頁有一個含有Print公共對話框相似的控制的General頁,其控制與Print公共對話框中的控制相似。

Windows CE:PRINTDLG結構包含Windows CE中不同的成員。

速查:WindowsNT:3.1及以上版本;Windows:95及以上版本;WindowsCE:2.0及以上版本;頭檔案:commdlg.h;庫檔案:comdlg32.lih;Unicode:在Windows NT環境中實現為Unicode和ANSI兩個版本。

PrintDlg結構體

typedef struct tagPD{

DWORD lStructSize;

HWND hwndOwner;

HGLOBAL hDevMode;

HGLOBAL hDevNames;

HDC hDC;

DWORD Flags;

WORD nFromPage;

WORD nToPage;

WORD nMinPage;

WORD nMaxPage;

WORD nCopies;

HINSTANCE hInstance;

LPARAM lCustData;

LPPRINTHOOKPROC lpfnPrintHook;

LPSETUPHOOKPROC lpfnSetupHook;

LPCTSTR lpPrintTemplateName;

LPCTSTR lpSetupTemplateName;

HGLOBAL hPrintTemplate;

HGLOBAL hSetupTemplate;

}PRINTDLG, *LPPRINTDLG;

lStructSize:本結構大小(位元組數)

hwndOwner:父視窗句柄(可為NULL)

hDevMode:包含印表機設備與環境信息的DEVMODE結構句柄

hDevNames:包含驅動器名、印表機名和輸出連線埠名的設備名結構DEVNAMES句柄

hDC:確定DC或IC(information context),由Flags是否設定PD_RETURNDC或PC_RETURNIC標誌來決定

Flags:用於列印公用對話框初始化的標誌位

nFromPage:指定開始頁碼編輯控制項的初始值

nToPage:指定結束頁碼編輯控制項的初始值

nMinPage:指定開始/結束頁碼編輯控制項的頁碼範圍的最小值,若nMinPage=nMaxPage,則“頁碼範圍”單選鈕和開始/結束頁碼編輯控制項被灰化

nMaxPage:指定開始/結束頁碼編輯控制項的頁碼範圍的最大值

nCopies:指定拷貝份數編輯控制項的初始值

hInstance:以下結構成員很少使用

lCustData:

lpfnPrintHook:

lpfnSetupHook:

lpPrintTemplateName:

lpSetupTemplateName:

hPrintTemplate:

hSetupTemplate:

Flags初始化標誌

PD_ALLPAGES(0x00) 指定“全部”單選鈕在初始時被選中(預設標誌)

PD_COLLATE(0x10) 指定“自動分頁”複選框在初始時被選中

PD_DISABLEPRINTTOFILE(0x80000) 使列印到檔案複選框失效

PD_ENABLEPRINTHOOK

PD_ENABLEPRINTTEMPLATE

PD_ENABLEPRINTTEMPLATEHANDLE

PD_ENABLESETUPHOOK

PD_ENABLESETUPTEMPLATE

PD_ENABLESETUPTEMPLATEHANDLE

PD_HIDEPRINTTOFILE(0x100000) 隱藏“列印到檔案”複選框(預設標誌)

PD_NONETWORKBUTTON(0x200000) 隱藏網路按鈕

PD_NOPAGENUMS(0x08) 使“頁碼範圍”單選鈕和開始/結束頁碼編輯控制項失效(預設標誌)

PD_NOSELECTION(0x04) 使“選定範圍”單選鈕失效(預設標誌)

PD_NOWARNING(0x80) 防止系統在沒有預設印表機時顯示警告訊息

PD_PAGENUMS(0x02) 指定“頁碼範圍”單選鈕在初始時被選中,若返回時該標誌位被設定,則nFromPage與nFromPage中為用戶設定的開始與結束頁碼

PD_PRINTSETUP(0x40) 使系統顯示列印設定對話框而不是列印對話框

PD_PRINTTOFILE(0x20) 指定“列印到檔案”複選框在初始時被選中

PD_RETURNDC(0x100) 使列印對話框返回與用戶選擇相匹配的DC到hDC成員

PD_RETURNDEFAULT(0x400) 不顯示列印對話框,將hDevNames與hDevMode分別設定為用系統預設印表機來初始化的結構DEVMODE與DEVNAMES的句柄

PD_RETURNIC(0x200) 使列印對話框返回與用戶選擇相匹配的IC到hDC成員  

PD_SELECTION(0x01) 指定“選定範圍”單選鈕在初始時被選中

PD_SHOWHELP(0x800) 使對話框顯示幫助按鈕,在用戶單擊幫助按鈕時對話框會傳送HELPMSGSTRING註冊訊息,hwndOwner成員必須指定接受該訊息的視窗

PD_USEDEVMODECOPIES(0x40000) 同PD_USEDEVMODECOPIESANDCOLLATE

PD_USEDEVMODECOPIESANDCOLLATE(0x40000) 指定你的應用程式不支持多份列印與自動分頁(預設標誌)。此時PRINTDLG結構的nCopies成員總是返回1,而且PD_COLLATE決不被設定

相關詞條

相關搜尋

熱門詞條

聯絡我們