打印属性表——打印作业属性
打印属性表是一个标准用户界面,允许用户指定特定打印作业的属性。
属性表由一组属性页组成,这些属性页因打印机或应用程序而异。
对于标准 Windows 属性页的子集,某些打印机可能会添加特定于驱动程序的属性页,
而某些应用程序可能会添加特定于应用程序的属性页。
若要创建并显示打印属性表,请初始化
打印选框类 结构并将该结构传递给
打印选框 函数。
下图显示了典型的打印属性表。
打印选框类 结构的大多数成员与
打印框类 结构的成员相同。
有关如何使用通用结构成员与对话框控件交互的说明,请参阅
打印对话框。
本主题的其余部分介绍与 “打印 ”对话框不同的“ 打印 ”属性表功能。
可以通过为“常规”页的下半部分指定自定义对话框模板以及指定其他属性页以跟随“常规”页来自定义打印属性表。
有关详细信息,请参阅 自定义打印属性表。
可以实现回调对象,以在显示属性表时从
打印选框 函数接收通知和消息。
提供自定义模板或其他页面的应用程序使用回调对象与属性表通信。 有关详细信息,请参阅 打印属性表的回调对象。
打印属性表支持指定要打印的多个不连续页面范围。
打印选框类 结构的 组数 成员指定
打印页类 结构的数组,其中每个结构指定页面范围。
“打印”属性表将“当前页”单选按钮显示为单选按钮的“页面范围”组的一部分。
若要控制“当前页”单选按钮,请使用
打印选框类 结构的 标志 成员中的0x400000和0x800000标志。
示例代码:
打印页类 打印页[10];//申请10个打印面,用来存储页面的首页和末页
打印选框类 打印框(长度=84,标志=$110,页数=10,份数=1,最小=1,最大=1000,始页=0xffffffff);
//标志=0x10选中整理检查框+0x100匹配设备
程序段 窗体启动;//以上代码为全局变量,在窗体启动程序段进行赋值
打印框.窗口=窗体;//指定打印对话框的窗口为程序主窗体
打印框.页面=打印页;//指定打印对话框的页面为打印页
结束//换到其它地方书写代码
程序段 按钮2_点击;//在按钮2的点击事件里弹出打印对话框
如果(打印选框(打印框))返回;//打印选框正常返回0,非0就不再执行后面代码
如果(打印框.回值=1);//用户点击了打印选框上面的打印按钮。
窗体~"正在打印文档";//显示正在打印。
结束//例程代码结束
打印选框类
中文名字 | 英文名称 | 长度 | 作用解释 |
打印选框类 | PRINTDLGEXA | 84 | 用来显示打印对话框或打印设置对话框。函数: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应用按钮 |
打印页类
中文名字 | 英文名称 | 长度 | 作用解释 |
打印页类 | PRINTPAGERANGE | 8 | 表示打印作业中的页面范围。 打印作业可以有多个页面范围。 |
打印页类——成员表 |
中文 | 英文 | 类型 | 作用解释 |
首页 | nFromPage | 整数 | 范围的第一页。 |
末页 | nToPage | 整数 | 范围的最后一页。 |
文档类
中文名字 | 英文名称 | 长度 | 作用解释 |
文档类 | DOCINFO | 20 | 用来显示打印对话框或打印设置对话框。函数:PrintDlg(lppd) |
文档类——成员表 |
中文 | 英文 | 类型 | 作用解释 |
长度 | cbSize | 整数 | 指定这个结构的大小,以字节为单位。 |
名称 | lpszDocName | 整数 | 指向指定文档名称的字符串 |
输出 | lpszOutput | 整数 | 指向指定输出文件名称的字符串 |
数据 | lpszDatatype | 整数 | 指定用于记录打印作业的数据类型(已忽略) |
其它 | fwType | 整数 | 指定有关打印作业的其他信息。(已忽略) |
设置模板 | hPageSetupTemplate | 整数 | 包含对话框模板的内存对象的句柄 |
设备环境类
中文名字 | 英文名称 | 长度 | 作用解释 |
设备环境类 | DEVMODEA | 156 | 包含有关打印机或显示设备的初始化和环境的信息。 |
设备环境类——成员表 |
中文 | 英文 | 类型 | 作用解释 |
名称 | 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_LETTER | 1 | 字母,8 1/2- by 11 英寸 |
DMPAPER_LETTERSMALL | 2 | 小写字母,8 1/2- by 11 英寸 |
DMPAPER_TABLOID | 3 | 小报,11- 乘 17 英寸 |
DMPAPER_LEDGER | 4 | 账本,17 by 11 英寸 |
DMPAPER_LEGAL | 5 | 法律,8 1/2- by 14 英寸 |
DMPAPER_STATEMENT | 6 | 语句,5 1/2- by 8 1/2 英寸 |
DMPAPER_EXECUTIVE | 7 | 行政, 7 1/4- by 10 1/2 英寸 |
DMPAPER_A3 | 8 | A3 工作表,297- by 420 毫米 |
DMPAPER_A4 | 9 | A4 工作表,210- by 297 毫米 |
DMPAPER_A4SMALL | 10 | A4 小纸,210 by 297 毫米 |
DMPAPER_A5 | 11 | A5 工作表,148- by 210 毫米 |
DMPAPER_B4 | 12 | B4 工作表,250- by 354 毫米 |
DMPAPER_B5 | 13 | B5 工作表,182- by 257 毫米纸 |
DMPAPER_FOLIO | 14 | Folio, 8 1/2- by 13 英寸纸 |
DMPAPER_QUARTO | 15 | Quarto,215 by 275 毫米纸 |
DMPAPER_10X14 | 16 | 10- 14 英寸工作表 |
DMPAPER_11X17 | 17 | 11- by 17 英寸工作表 |
DMPAPER_NOTE | 18 | 注意,8 1/2- by 11 英寸 |
DMPAPER_ENV_9 | 19 | #9 信封,3 7/8- by 8 7/8 英寸 |
DMPAPER_ENV_10 | 20 | #10 信封,4 1/8- by 9 1/2 英寸 |
DMPAPER_ENV_11 | 21 | #11 信封,4 1/2- by 10 3/8 英寸 |
DMPAPER_ENV_12 | 22 | #12 信封,4 3/4- by 11 英寸 |
DMPAPER_ENV_14 | 23 | #14 信封,5- by 11 1/2 英寸 |
DMPAPER_CSHEET | 24 | C 工作表,17- by 22 英寸 |
DMPAPER_DSHEET | 25 | D 工作表,22 by 34 英寸 |
DMPAPER_ESHEET | 26 | E 工作表,34 by 44 英寸 |
DMPAPER_ENV_DL | 27 | DL 信封,110- by 220 毫米 |
DMPAPER_ENV_C5 | 28 | C5 信封,162- by 229 毫米 |
DMPAPER_ENV_C3 | 29 | C3 信封,324 by 458 毫米 |
DMPAPER_ENV_C4 | 30 | C4 信封,229- by 324 毫米 |
DMPAPER_ENV_C6 | 31 | C6 信封,114- by 162 毫米 |
DMPAPER_ENV_C65 | 32 | C65 信封,114 by 229 毫米 |
DMPAPER_ENV_B4 | 33 | B4 信封,250- by 353 毫米 |
DMPAPER_ENV_B5 | 34 | B5 信封,176- by 250 毫米 |
DMPAPER_ENV_B6 | 35 | B6 信封,176- by 125 毫米 |
DMPAPER_ENV_ITALY | 36 | 意大利信封,110- by 230 毫米 |
DMPAPER_ENV_MONARCH | 37 | 君主信封, 3 7/8- by 7 1/2 英寸 |
DMPAPER_ENV_PERSONAL | 38 | 6 3/4 信封,3 5/8- by 6 1/2 英寸 |
DMPAPER_FANFOLD_US | 39 | US Std Fanfold, 14 7/8- by 11 英寸 |
DMPAPER_FANFOLD_STD_GERMAN | 40 | 德国 Std Fanfold, 8 1/2- by 12 英寸 |
DMPAPER_FANFOLD_LGL_GERMAN | 41 | 德国法律范福尔德, 8 - by 13 英寸 |
DMPAPER_ISO_B4 | 42 | B4 (ISO) 250- by 353 毫米纸张 |
DMPAPER_JAPANESE_POSTCARD | 43 | 日本明信片,100-by 148 毫米 |
DMPAPER_9X11 | 44 | 9- by 11 英寸工作表 |
DMPAPER_10X11 | 45 | 10- 11 英寸工作表 |
DMPAPER_15X11 | 46 | 15- by 11 英寸工作表 |
DMPAPER_ENV_INVITE | 47 | 信封邀请 220 x 220 mm |
DMPAPER_RESERVED_48 | 48 | 预留--请勿使用 |
DMPAPER_RESERVED_49 | 49 | 预留--请勿使用 |
DMPAPER_LETTER_EXTRA | 50 | 字母额外 9 1/2 x 12 英寸。 |
DMPAPER_LEGAL_EXTRA | 51 | 法定额外 9 1/2 x 15 英寸。 |
DMPAPER_TABLOID_EXTRA | 52 | 小报,11.69 x 18 英寸 |
DMPAPER_A4_EXTRA | 53 | A4 工作表,9.27 x 12.69 英寸 |
DMPAPER_LETTER_TRANSVERSE | 54 | 字母横向 8 1/2 x 11 英寸 |
DMPAPER_A4_TRANSVERSE | 55 | A4 横向 210 x 297 毫米 |
DMPAPER_LETTER_EXTRA_TRANSVERSE | 56 | 字母额外横向 9 1/2 x 12 英寸。 |
DMPAPER_A_PLUS | 57 | SuperA/A4 227 x 356 毫米 |
DMPAPER_B_PLUS | 58 | SuperB/A3 305 x 487 毫米 |
DMPAPER_LETTER_PLUS | 59 | 美国字母加号 8.5 x 12.69 in |
DMPAPER_A4_PLUS | 60 | A4 Plus 210 x 330 毫米 |
DMPAPER_A5_TRANSVERSE | 61 | A5 横向 148 x 210 毫米 |
DMPAPER_B5_TRANSVERSE | 62 | B5 (JIS) 横向 182 x 257 mm |
DMPAPER_A3_EXTRA | 63 | A3 额外 322 x 445 毫米 |
DMPAPER_A5_EXTRA | 64 | A5 额外 174 x 235 毫米 |
DMPAPER_B5_EXTRA | 65 | B5 (ISO) 额外 201 x 276 毫米 |
DMPAPER_A2 | 66 | A2 工作表,420 x 594 毫米 |
DMPAPER_A3_TRANSVERSE | 67 | A3 横向 297 x 420 mm |
DMPAPER_A3_EXTRA_TRANSVERSE | 68 | A3 额外横向 322 x 445 毫米 |
DMPAPER_DBL_JAPANESE_POSTCARD | 69 | 双日明信片,200 by 148 毫米 |
DMPAPER_A6 | 70 | A6 工作表,105- 乘 148 毫米 |
DMPAPER_JENV_KAKU2 | 71 | 日语信封 Kaku #2 |
DMPAPER_JENV_KAKU3 | 72 | 日语信封 Kaku #3 |
DMPAPER_JENV_CHOU3 | 73 | 日语信封周 #3 |
DMPAPER_JENV_CHOU4 | 74 | 日语信封 Chou #4 |
DMPAPER_LETTER_ROTATED | 75 | 字母旋转 11 by 8 1/2 英寸 |
DMPAPER_A3_ROTATED | 76 | A3 旋转纸,420 乘 297 毫米 |
DMPAPER_A4_ROTATED | 77 | A4 旋转纸,297 乘 210 毫米 |
DMPAPER_A5_ROTATED | 78 | A5 旋转纸,210 乘 148 毫米 |
DMPAPER_B4_JIS_ROTATED | 79 | B4 (JIS) 旋转工作表,364 乘 257 毫米 |
DMPAPER_B5_JIS_ROTATED | 80 | B5 (JIS) 旋转工作表,257 乘 182 毫米 |
DMPAPER_JAPANESE_POSTCARD_ROTATED | 81 | 日本明信片旋转,148 乘 100 毫米 |
DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED | 82 | 双日本明信片旋转,148 乘 200 毫米 |
DMPAPER_A6_ROTATED | 83 | A6 旋转纸,148 乘 105 毫米 |
DMPAPER_JENV_KAKU2_ROTATED | 84 | 日语信封 Kaku #2 旋转 |
DMPAPER_JENV_KAKU3_ROTATED | 85 | 日语信封 Kaku #3 旋转 |
DMPAPER_JENV_CHOU3_ROTATED | 86 | 日本信封 Chou #3 旋转 |
DMPAPER_JENV_CHOU4_ROTATED | 87 | 日本信封周 #4 旋转 |
DMPAPER_B6_JIS | 88 | B6 (JIS) 纸,128 乘 182 毫米 |
DMPAPER_B6_JIS_ROTATED | 89 | B6 (JIS) 旋转工作表,182 乘 128 毫米 |
DMPAPER_12X11 | 90 | 12- by 11 英寸工作表 |
DMPAPER_JENV_YOU4 | 91 | 日语信封 You #4 |
DMPAPER_JENV_YOU4_ROTATED | 92 | 日语信封你 #4 旋转 |
DMPAPER_P16K | 93 | 中国 16K,146- by 215 毫米 |
DMPAPER_P32K | 94 | 中国 32K,97- by 151 毫米 |
DMPAPER_P32KBIG | 95 | 中国 32K (大) 97- 乘 151 毫米 |
DMPAPER_PENV_1 | 96 | 中国信封 #1, 102- by 165 毫米 |
DMPAPER_PENV_2 | 97 | 中国信封 #2, 102- by 176 毫米 |
DMPAPER_PENV_3 | 98 | 中国信封 #3, 125- by 176 毫米 |
DMPAPER_PENV_4 | 99 | 中国信封 #4, 110- by 208 毫米 |
DMPAPER_PENV_5 | 100 | 中国信封 #5, 110- by 220 毫米 |
DMPAPER_PENV_6 | 101 | 中国信封 #6, 120- by 230 毫米 |
DMPAPER_PENV_7 | 102 | 中国信封 #7, 160- by 230 毫米 |
DMPAPER_PENV_8 | 103 | 中国信封 #8,120- x 309 毫米 |
DMPAPER_PENV_9 | 104 | 中国信封 #9,229- x 324 毫米 |
DMPAPER_PENV_10 | 105 | 中国信封 #10,324- x 458 毫米 |
DMPAPER_P16K_ROTATED | 106 | 中国 16K 旋转,215 by 146 毫米 |
DMPAPER_P32K_ROTATED | 107 | 中国 32K 旋转,151 乘 97 毫米 |
DMPAPER_P32KBIG_ROTATED | 108 | 中国 32K (大) 旋转,151- by 97 毫米 |
DMPAPER_PENV_1_ROTATED | 109 | 中国信封 #1 旋转,165- x 102 毫米 |
DMPAPER_PENV_2_ROTATED | 110 | 中国信封 #2 旋转,176- x 102 毫米 |
DMPAPER_PENV_3_ROTATED | 111 | 中国信封 #3 旋转,176- x 125 毫米 |
DMPAPER_PENV_4_ROTATED | 112 | 中国信封 #4 旋转, 208- by 110 毫米 |
DMPAPER_PENV_5_ROTATED | 113 | 中国信封 #5 旋转, 220- x 110 毫米 |
DMPAPER_PENV_6_ROTATED | 114 | 中国信封 #6 旋转, 230- by 120 毫米 |
DMPAPER_PENV_7_ROTATED | 115 | 中国信封 #7 旋转,230- x 160 毫米 |
DMPAPER_PENV_8_ROTATED | 116 | 中国信封 #8 旋转,309- x 120 毫米 |
DMPAPER_PENV_9_ROTATED | 117 | 中国信封 #9 旋转,324 x 229 毫米 |
DMPAPER_PENV_10_ROTATED | 118 | 中国信封 #10 旋转,458- x 324 毫米 |
打印框回调对象
中文名字 | 英文名称 | 作用解释 |
打印框回调对象 | IPrintDialogCallback | 提供使应用程序能够在显示打印属性表时从 打印选框 函数接收通知和消息的方法。 |
打印框回调对象——方法表 |
QueryInterface | 接口(标识,@指针) | 检索指向对象上支持的接口的指针。 |
AddRef | 计数 | 递增对象上接口的引用计数。 对于指向对象上接口的指针的每个新副本,应调用此方法。 |
Release | 释放 | 递减对象上接口的引用计数。前三项COM对象通用 |
InitDone | 初始化 | 当系统完成初始化“打印属性表”的“常规”页时,由 打印选框 调用。 |
SelectionChange | 已选 | 从“打印属性表”的“常规”页上的已安装打印机列表中选择其他打印机时。 |
HandleMessage | 处理(窗口,消息,参数,数据,结果) | 处理发送到“打印属性表”常规“页下半部分中子对话框的消息。结果为真处理消息,为假不处理 |
打印框服务对象
中文名字 | 英文名称 | 作用解释 |
打印框服务对象 | IPrintDialogServices | 供程序能够使用 打印选框 函数检索有关当前所选打印机的信息的方法。 |
打印框服务对象——方法表 |
QueryInterface | 接口(标识,@指针) | 检索指向对象上支持的接口的指针。 |
AddRef | 计数 | 递增对象上接口的引用计数。 对于指向对象上接口的指针的每个新副本,应调用此方法。 |
Release | 释放 | 递减对象上接口的引用计数。前三项COM对象通用 |
GetCurrentDevMode | 信息(环境,@大小) | 使用当前所选打印机的相关信息填充 DEVMODE 结构。 |
GetCurrentPrinterName | 名称(内容,@大小) | 检索当前所选打印机的名称 |
GetCurrentPortName | 端口(内容,@大小) | 检索要与 打印选框 一起使用的当前端口的名称。 |