极语言官方网站

打印属性表——打印作业属性

打印属性表是一个标准用户界面,允许用户指定特定打印作业的属性。

属性表由一组属性页组成,这些属性页因打印机或应用程序而异。

对于标准 Windows 属性页的子集,某些打印机可能会添加特定于驱动程序的属性页,

而某些应用程序可能会添加特定于应用程序的属性页。

若要创建并显示打印属性表,请初始化 打印选框类 结构并将该结构传递给 打印选框 函数。

下图显示了典型的打印属性表。

打印选框类 结构的大多数成员与 打印框类 结构的成员相同。

有关如何使用通用结构成员与对话框控件交互的说明,请参阅 打印对话框。

本主题的其余部分介绍与 “打印 ”对话框不同的“ 打印 ”属性表功能。

可以通过为“常规”页的下半部分指定自定义对话框模板以及指定其他属性页以跟随“常规”页来自定义打印属性表。

有关详细信息,请参阅 自定义打印属性表。

可以实现回调对象,以在显示属性表时从 打印选框 函数接收通知和消息。

提供自定义模板或其他页面的应用程序使用回调对象与属性表通信。 有关详细信息,请参阅 打印属性表的回调对象。

打印属性表支持指定要打印的多个不连续页面范围。

打印选框类 结构的 组数 成员指定 打印页类 结构的数组,其中每个结构指定页面范围。

“打印”属性表将“当前页”单选按钮显示为单选按钮的“页面范围”组的一部分。

若要控制“当前页”单选按钮,请使用 打印选框类 结构的 标志 成员中的0x400000和0x800000标志。


示例代码:
打印页类 打印页[10];//申请10个打印面,用来存储页面的首页和末页
打印选框类 打印框(长度=84,标志=$110,页数=10,份数=1,最小=1,最大=1000,始页=0xffffffff);
//标志=0x10选中整理检查框+0x100匹配设备
程序段 窗体启动;//以上代码为全局变量,在窗体启动程序段进行赋值
打印框.窗口=窗体;//指定打印对话框的窗口为程序主窗体
打印框.页面=打印页;//指定打印对话框的页面为打印页
结束//换到其它地方书写代码
程序段 按钮2_点击;//在按钮2的点击事件里弹出打印对话框
如果(打印选框(打印框))返回;//打印选框正常返回0,非0就不再执行后面代码
如果(打印框.回值=1);//用户点击了打印选框上面的打印按钮。
窗体~"正在打印文档";//显示正在打印。
结束//例程代码结束

打印选框类

中文名字英文名称长度作用解释
打印选框类PRINTDLGEXA84   用来显示打印对话框或打印设置对话框。函数:PrintDlg(lppd)
打印选框类——成员表
中文英文类型作用解释
长度lStructSize整数指定这个结构的大小,以字节为单位。
窗口hwndOwner整数拥有对话框的窗口的句柄。可不指定
环境hDevMode整数包含打印机设备与环境信息的DEVMODE结构句柄
名称hDevNames整数包含驱动器名、打印机名和输出端口名的设备名结构DEVNAMES句柄
设备hDC整数设备上下文或信息上下文的句柄,由Flags是否设置PD_RETURNDC或PC_RETURNIC标志来决定。
标志Flags整数用于打印公用对话框初始化的标志位
标记Flags2整数排斥标志
排除ExclusionFlags整数从打印驱动程序属性页中排除项。0x8100=属性页中排除“复制”和“整理”控件
组数nPageRanges整数数组中指定的初始页范围数。
页数nMaxPageRanges整数页面数组缓冲区的大小(以数组元素为单位)。
页面lpPageRanges整数指向包含 打印页类 结构数组的缓冲区的指针。
最小nMinPage整数指定页码编辑控件的页码范围的最小值
最大nMaxPage整数指定页码编辑控件的页码范围的最大值
份数nCopies整数指定副本编辑控件的初始副本数
实例hInstance整数标志成员中设置了PD_ENABLEPRINTTEMPLATEHANDLE标志
模板lpPrintTemplateName整数程序模块中对话框模板资源的名称。
回调lpCallback整数指向应用程序定义的回调对象的指针。
属组nPropertyPages整数 数组中的属性页句柄数。
属性lphPropertyPages整数包含要添加到打印属性表的属性页句柄数组。
始页nStartPage整数最初显示的属性页。
回值dwResultAction整数输入时,将此成员设置为零。返回:0单击了取消按钮,1打印按钮,2应用按钮

打印页类

中文名字英文名称长度作用解释
打印页类PRINTPAGERANGE8表示打印作业中的页面范围。 打印作业可以有多个页面范围。
打印页类——成员表
中文英文类型作用解释
首页nFromPage整数范围的第一页。
末页nToPage整数范围的最后一页。

文档类

中文名字英文名称长度作用解释
文档类DOCINFO20用来显示打印对话框或打印设置对话框。函数:PrintDlg(lppd)
文档类——成员表
中文英文类型作用解释
长度cbSize整数指定这个结构的大小,以字节为单位。
名称lpszDocName整数指向指定文档名称的字符串
输出lpszOutput整数指向指定输出文件名称的字符串
数据lpszDatatype整数指定用于记录打印作业的数据类型(已忽略)
其它fwType整数指定有关打印作业的其他信息。(已忽略)
设置模板hPageSetupTemplate整数包含对话框模板的内存对象的句柄

设备环境类

中文名字英文名称长度作用解释
设备环境类DEVMODEA156包含有关打印机或显示设备的初始化和环境的信息。
设备环境类——成员表
中文英文类型作用解释
名称dmDeviceName[32]文本以零结尾的字符数组,指定打印机或显示器的“友好”名称;
规范dmSpecVersion整形初始化数据规范的版本号。DM_SPECVERSION
版本dmDriverVersion整形驱动程序开发人员分配的驱动程序版本号。
大小dmSize整形结构的大小(以字节为单位)
字数dmDriverExtra整形包含遵循此结构的专用驱动程序数据的字节数。
标志dmFields整数指定结构的某些成员是否已初始化。
方向dmOrientation整形仅对于打印机设备,选择纸张的方向(1肖像,2风景)。标志:1
尺寸dmPaperSize整形仅对于打印机设备,选择要打印的纸张大小。标志:2
长度dmPaperLength整形替代 大小 成员指定的纸张长度,以十分之一毫米为单位。标志:4
纸宽dmPaperWidth整形覆盖大小成员指定的纸张宽度。标志:8
缩放dmScale整形指定缩放打印输出所依据的因子。标志:0x10
份数dmCopies整形如果设备支持多页副本,则选择打印的份数。标志:0x100
来源dmDefaultSource整形指定纸张来源。标志:0x200
分辨dmPrintQuality整形指定打印机分辨率(DPI)。标志:0x400
dmPosition坐标类显示设备在桌面区域中的位置坐标。标志:0x20
dmDisplayOrientation整数表示应呈现图像的方向:0默认,1旋转90度,2旋转180度,3旋转270度。标志:0x80
dmDisplayFixedOutput整数仅对于固定分辨率的显示设备:。标志:0x20000000
颜色dmColor整形在彩色打印机上切换彩色2和单色1。标志:0x800
双工dmDuplex整形1普通打印,2长边绑定垂直,3短边绑定长边水平。标志:0x1000
纸高dmYResolution整形指定打印机的 y 分辨率(英寸为单位)。标志:0x2000
字体dmTTOption整形打印字体:1打印为图形,2下载为软字体,3替换为TT字体,4下载为大纲软字体。标志:0x4000
排序dmCollate整形排序规则:0不排序,1排序。标志:0x8000
窗名dmFormName[32]文本指定要使用的窗体的名称。标志:0x10000
英寸dmLogPixels整形每个逻辑英寸的像素数。标志:0x20000
位色dmBitsPerPel整数指定显示设备的颜色分辨率,4位16色,8位256色,16位65536色。标志:0x40000
像宽dmPelsWidth整数指定可见设备图面的宽度(以像素为单位)。 标志:0x80000
像高dmPelsHeight整数指定可见设备图面的高度(以像素为单位)。标志:0x100000
模式dmDisplayFlags整数指定设备的显示模式:1灰色,2交错显示。标志:0x200000
频率dmDisplayFrequency整数指定特定模式下显示设备的频率。标志:0x400000
处理dmICMMethod整数指定如何处理ICM:1禁用,2系统处理,3驱动处理,4设备处理。标志:0x800000
匹配dmICMIntent整数指定颜色匹配方法或意向:1饱和度优化,2对比度优化,3确切颜色匹配,4绝对颜色匹配。标志:0x1000000
媒体dmMediaType整数指定要打印的媒体的类型:1普通纸,2透明膜,3光泽纸。标志:0x2000000
抖动dmDitherType整数指定如何执行抖动:1无,2粗笔抖,3细笔抖,4线条艺术抖,10灰色缩放。标志:0x4000000
dmReserved1整数未使用;必须为零。
dmReserved2整数未使用;必须为零。
景宽dmPanningWidth整数此成员必须为零。标志:0x8000000
景高dmPanningHeight整数此成员必须为零。标志:0x10000000

纸张大小

英文名称数值作用解释
DMPAPER_LETTER1字母,8 1/2- by 11 英寸
DMPAPER_LETTERSMALL2小写字母,8 1/2- by 11 英寸
DMPAPER_TABLOID3小报,11- 乘 17 英寸
DMPAPER_LEDGER4账本,17 by 11 英寸
DMPAPER_LEGAL5法律,8 1/2- by 14 英寸
DMPAPER_STATEMENT6语句,5 1/2- by 8 1/2 英寸
DMPAPER_EXECUTIVE7行政, 7 1/4- by 10 1/2 英寸
DMPAPER_A38A3 工作表,297- by 420 毫米
DMPAPER_A49A4 工作表,210- by 297 毫米
DMPAPER_A4SMALL10A4 小纸,210 by 297 毫米
DMPAPER_A511A5 工作表,148- by 210 毫米
DMPAPER_B412B4 工作表,250- by 354 毫米
DMPAPER_B513B5 工作表,182- by 257 毫米纸
DMPAPER_FOLIO14Folio, 8 1/2- by 13 英寸纸
DMPAPER_QUARTO15Quarto,215 by 275 毫米纸
DMPAPER_10X141610- 14 英寸工作表
DMPAPER_11X171711- by 17 英寸工作表
DMPAPER_NOTE18注意,8 1/2- by 11 英寸
DMPAPER_ENV_919#9 信封,3 7/8- by 8 7/8 英寸
DMPAPER_ENV_1020#10 信封,4 1/8- by 9 1/2 英寸
DMPAPER_ENV_1121#11 信封,4 1/2- by 10 3/8 英寸
DMPAPER_ENV_1222#12 信封,4 3/4- by 11 英寸
DMPAPER_ENV_1423#14 信封,5- by 11 1/2 英寸
DMPAPER_CSHEET24C 工作表,17- by 22 英寸
DMPAPER_DSHEET25D 工作表,22 by 34 英寸
DMPAPER_ESHEET26E 工作表,34 by 44 英寸
DMPAPER_ENV_DL27DL 信封,110- by 220 毫米
DMPAPER_ENV_C528C5 信封,162- by 229 毫米
DMPAPER_ENV_C329C3 信封,324 by 458 毫米
DMPAPER_ENV_C430C4 信封,229- by 324 毫米
DMPAPER_ENV_C631C6 信封,114- by 162 毫米
DMPAPER_ENV_C6532C65 信封,114 by 229 毫米
DMPAPER_ENV_B433B4 信封,250- by 353 毫米
DMPAPER_ENV_B534B5 信封,176- by 250 毫米
DMPAPER_ENV_B635B6 信封,176- by 125 毫米
DMPAPER_ENV_ITALY36意大利信封,110- by 230 毫米
DMPAPER_ENV_MONARCH37君主信封, 3 7/8- by 7 1/2 英寸
DMPAPER_ENV_PERSONAL386 3/4 信封,3 5/8- by 6 1/2 英寸
DMPAPER_FANFOLD_US39US Std Fanfold, 14 7/8- by 11 英寸
DMPAPER_FANFOLD_STD_GERMAN40德国 Std Fanfold, 8 1/2- by 12 英寸
DMPAPER_FANFOLD_LGL_GERMAN41德国法律范福尔德, 8 - by 13 英寸
DMPAPER_ISO_B442B4 (ISO) 250- by 353 毫米纸张
DMPAPER_JAPANESE_POSTCARD43日本明信片,100-by 148 毫米
DMPAPER_9X11449- by 11 英寸工作表
DMPAPER_10X114510- 11 英寸工作表
DMPAPER_15X114615- by 11 英寸工作表
DMPAPER_ENV_INVITE47信封邀请 220 x 220 mm
DMPAPER_RESERVED_4848预留--请勿使用
DMPAPER_RESERVED_4949预留--请勿使用
DMPAPER_LETTER_EXTRA50字母额外 9 1/2 x 12 英寸。
DMPAPER_LEGAL_EXTRA51法定额外 9 1/2 x 15 英寸。
DMPAPER_TABLOID_EXTRA52小报,11.69 x 18 英寸
DMPAPER_A4_EXTRA53A4 工作表,9.27 x 12.69 英寸
DMPAPER_LETTER_TRANSVERSE54字母横向 8 1/2 x 11 英寸
DMPAPER_A4_TRANSVERSE55A4 横向 210 x 297 毫米
DMPAPER_LETTER_EXTRA_TRANSVERSE56字母额外横向 9 1/2 x 12 英寸。
DMPAPER_A_PLUS57SuperA/A4 227 x 356 毫米
DMPAPER_B_PLUS58SuperB/A3 305 x 487 毫米
DMPAPER_LETTER_PLUS59美国字母加号 8.5 x 12.69 in
DMPAPER_A4_PLUS60A4 Plus 210 x 330 毫米
DMPAPER_A5_TRANSVERSE61A5 横向 148 x 210 毫米
DMPAPER_B5_TRANSVERSE62B5 (JIS) 横向 182 x 257 mm
DMPAPER_A3_EXTRA63A3 额外 322 x 445 毫米
DMPAPER_A5_EXTRA64A5 额外 174 x 235 毫米
DMPAPER_B5_EXTRA65B5 (ISO) 额外 201 x 276 毫米
DMPAPER_A266A2 工作表,420 x 594 毫米
DMPAPER_A3_TRANSVERSE67A3 横向 297 x 420 mm
DMPAPER_A3_EXTRA_TRANSVERSE68A3 额外横向 322 x 445 毫米
DMPAPER_DBL_JAPANESE_POSTCARD69双日明信片,200 by 148 毫米
DMPAPER_A670A6 工作表,105- 乘 148 毫米
DMPAPER_JENV_KAKU271日语信封 Kaku #2
DMPAPER_JENV_KAKU372日语信封 Kaku #3
DMPAPER_JENV_CHOU373日语信封周 #3
DMPAPER_JENV_CHOU474日语信封 Chou #4
DMPAPER_LETTER_ROTATED75字母旋转 11 by 8 1/2 英寸
DMPAPER_A3_ROTATED76A3 旋转纸,420 乘 297 毫米
DMPAPER_A4_ROTATED77A4 旋转纸,297 乘 210 毫米
DMPAPER_A5_ROTATED78A5 旋转纸,210 乘 148 毫米
DMPAPER_B4_JIS_ROTATED79B4 (JIS) 旋转工作表,364 乘 257 毫米
DMPAPER_B5_JIS_ROTATED80B5 (JIS) 旋转工作表,257 乘 182 毫米
DMPAPER_JAPANESE_POSTCARD_ROTATED81日本明信片旋转,148 乘 100 毫米
DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED82双日本明信片旋转,148 乘 200 毫米
DMPAPER_A6_ROTATED83A6 旋转纸,148 乘 105 毫米
DMPAPER_JENV_KAKU2_ROTATED84日语信封 Kaku #2 旋转
DMPAPER_JENV_KAKU3_ROTATED85日语信封 Kaku #3 旋转
DMPAPER_JENV_CHOU3_ROTATED86日本信封 Chou #3 旋转
DMPAPER_JENV_CHOU4_ROTATED87日本信封周 #4 旋转
DMPAPER_B6_JIS88B6 (JIS) 纸,128 乘 182 毫米
DMPAPER_B6_JIS_ROTATED89B6 (JIS) 旋转工作表,182 乘 128 毫米
DMPAPER_12X119012- by 11 英寸工作表
DMPAPER_JENV_YOU491日语信封 You #4
DMPAPER_JENV_YOU4_ROTATED92日语信封你 #4 旋转
DMPAPER_P16K93中国 16K,146- by 215 毫米
DMPAPER_P32K94中国 32K,97- by 151 毫米
DMPAPER_P32KBIG95中国 32K (大) 97- 乘 151 毫米
DMPAPER_PENV_196中国信封 #1, 102- by 165 毫米
DMPAPER_PENV_297中国信封 #2, 102- by 176 毫米
DMPAPER_PENV_398中国信封 #3, 125- by 176 毫米
DMPAPER_PENV_499中国信封 #4, 110- by 208 毫米
DMPAPER_PENV_5100中国信封 #5, 110- by 220 毫米
DMPAPER_PENV_6101中国信封 #6, 120- by 230 毫米
DMPAPER_PENV_7102中国信封 #7, 160- by 230 毫米
DMPAPER_PENV_8103中国信封 #8,120- x 309 毫米
DMPAPER_PENV_9104中国信封 #9,229- x 324 毫米
DMPAPER_PENV_10105中国信封 #10,324- x 458 毫米
DMPAPER_P16K_ROTATED106中国 16K 旋转,215 by 146 毫米
DMPAPER_P32K_ROTATED107中国 32K 旋转,151 乘 97 毫米
DMPAPER_P32KBIG_ROTATED108中国 32K (大) 旋转,151- by 97 毫米
DMPAPER_PENV_1_ROTATED109中国信封 #1 旋转,165- x 102 毫米
DMPAPER_PENV_2_ROTATED110中国信封 #2 旋转,176- x 102 毫米
DMPAPER_PENV_3_ROTATED111中国信封 #3 旋转,176- x 125 毫米
DMPAPER_PENV_4_ROTATED112中国信封 #4 旋转, 208- by 110 毫米
DMPAPER_PENV_5_ROTATED113中国信封 #5 旋转, 220- x 110 毫米
DMPAPER_PENV_6_ROTATED114中国信封 #6 旋转, 230- by 120 毫米
DMPAPER_PENV_7_ROTATED115中国信封 #7 旋转,230- x 160 毫米
DMPAPER_PENV_8_ROTATED116中国信封 #8 旋转,309- x 120 毫米
DMPAPER_PENV_9_ROTATED117中国信封 #9 旋转,324 x 229 毫米
DMPAPER_PENV_10_ROTATED118中国信封 #10 旋转,458- x 324 毫米

打印框回调对象

中文名字英文名称作用解释
打印框回调对象IPrintDialogCallback提供使应用程序能够在显示打印属性表时从 打印选框 函数接收通知和消息的方法。
打印框回调对象——方法表
QueryInterface接口(标识,@指针)检索指向对象上支持的接口的指针。
AddRef计数递增对象上接口的引用计数。 对于指向对象上接口的指针的每个新副本,应调用此方法。
Release释放递减对象上接口的引用计数。前三项COM对象通用
InitDone初始化当系统完成初始化“打印属性表”的“常规”页时,由 打印选框 调用。
SelectionChange已选从“打印属性表”的“常规”页上的已安装打印机列表中选择其他打印机时。
HandleMessage处理(窗口,消息,参数,数据,结果)处理发送到“打印属性表”常规“页下半部分中子对话框的消息。结果为真处理消息,为假不处理

打印框服务对象

中文名字英文名称作用解释
打印框服务对象IPrintDialogServices供程序能够使用 打印选框 函数检索有关当前所选打印机的信息的方法。
打印框服务对象——方法表
QueryInterface接口(标识,@指针)检索指向对象上支持的接口的指针。
AddRef计数递增对象上接口的引用计数。 对于指向对象上接口的指针的每个新副本,应调用此方法。
Release释放递减对象上接口的引用计数。前三项COM对象通用
GetCurrentDevMode信息(环境,@大小)使用当前所选打印机的相关信息填充 DEVMODE 结构。
GetCurrentPrinterName名称(内容,@大小)检索当前所选打印机的名称
GetCurrentPortName端口(内容,@大小)检索要与 打印选框 一起使用的当前端口的名称。