複製鏈接
請複製以下鏈接發送給好友

PrintDlg

鎖定
函數功能:該函數顯示打印對話框或打印設置對話框。打印對話框使用户指定特殊的打印工作的特點。
打印設置對話框不能應用在新應用程序中,它已經被PageSetupDlg函數創建的打印設置公共對話框所替代。
外文名
PrintDlg
函數原型
BOOL PrintDlg(LPPRINTDLG lppd
返回值
用户點擊OK按鈕,返回值為非零值
函數功能
顯示打印對話框或打印設置對話框

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成員 [1] 
PD_SELECTION(0x01) 指定“選定範圍”單選鈕在初始時被選中
PD_SHOWHELP(0x800) 使對話框顯示幫助按鈕,在用户單擊幫助按鈕時對話框會發送HELPMSGSTRING註冊消息,hwndOwner成員必須指定接受該消息的窗口
PD_USEDEVMODECOPIES(0x40000) 同PD_USEDEVMODECOPIESANDCOLLATE
PD_USEDEVMODECOPIESANDCOLLATE(0x40000) 指定你的應用程序不支持多份打印與自動分頁(缺省標誌)。此時PRINTDLG結構的nCopies成員總是返回1,而且PD_COLLATE決不被設置
參考資料