CPrintDialog 构造函数参数详解

时间:2023-03-08 18:40:57
CPrintDialog 构造函数参数详解

CPrintDialog

构造Windows打印或打印设置对话框(两者不同)

CPrintDialog 构造函数参数详解   CPrintDialog 构造函数参数详解

打印对话框                                                                                           打印设置对话框

格式:

CPrintDialog(
BOOL bPrintSetupOnly,
DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION,
CWnd* pParentWnd = NULL
);

参数:

bPrintSetupOnly:指定打印对话框还是打印设置对话框显示

TRUE: 显示打印对话框

FALSE:显示打印设置对话框

dwFlags:可以使用自定义对话框中设置的一个或多个标记,按位组合使用或运算符。
              可以不输入,默认值:PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION
pParentWnd:指向对话框的父级或所有者窗口的指针。
               可以不输入:默认值为NULL
备注:
1.此成员函数只构造对象,使用DoModal函数显示对话框
2.在设置bPrintSetupOnly=FALSE时,自动启用PD_RETURNDC 标志。在调用 DoModal、 GetDefaults或 GetPrinterDC后,打印机DC在m_pd.hDC将返回
这个DC对象,必须经由CPrintDialog 调用方,通过DeleteDC()方法释放

bPrintSetupOnly:参数详解

#define PD_ALLPAGES                    0x00000000  //全部  打印对话框(FALSE)
#define PD_SELECTION 0x00000001 //选定范围
#define PD_PAGENUMS 0x00000002 //页码范围,当nMinPage=nMaxPage时,此按钮灰化,不可用
#define PD_NOSELECTION 0x00000004 //选定范围不可用
#define PD_NOPAGENUMS 0x00000008 //页码范围不可用
#define PD_COLLATE 0x00000010 //
#define PD_PRINTTOFILE 0x00000020 //打印到文件
#define PD_PRINTSETUP 0x00000040 //打印设置对话框(设定此标志,打印对话框会变成打印设置对话框
#define PD_NOWARNING 0x00000080 //阻止显示警告信息(当系统没有默认打印机时
#define PD_RETURNDC 0x00000100 //设备上下文 DoModal、 GetDefaults或 GetPrinterDC后,打印机DC在m_pd.hDC将返回
#define PD_RETURNIC 0x00000200 //信息上下文,如果PD_RETURNDC和PD_RETURNIC均未指定,则hDC未定义
#define PD_RETURNDEFAULT 0x00000400 //用系统默认打印机初始化,且不显示对话框
#define PD_SHOWHELP 0x00000800
#define PD_ENABLEPRINTHOOK 0x00001000
#define PD_ENABLESETUPHOOK 0x00002000
#define PD_ENABLEPRINTTEMPLATE 0x00004000
#define PD_ENABLESETUPTEMPLATE 0x00008000
#define PD_ENABLEPRINTTEMPLATEHANDLE 0x00010000
#define PD_ENABLESETUPTEMPLATEHANDLE 0x00020000
#define PD_USEDEVMODECOPIES 0x00040000
#define PD_USEDEVMODECOPIESANDCOLLATE 0x00040000
#define PD_DISABLEPRINTTOFILE 0x00080000
#define PD_HIDEPRINTTOFILE 0x00100000
#define PD_NONETWORKBUTTON 0x00200000