极语言官方网站

页面设置对话框——设置打印页属性

显示允许用户设置打印页的以下属性的模式对话框:

纸张类型 (信封、法律、信件等)

纸张源 (手动进纸、拖拉机进纸、纸张送纸器等)

页面方向 (纵向或横向)

页边距的宽度

通过初始化 页面框类 结构并将该结构传递给 页面设置 函数,可以创建并显示“页面设置”对话框。

但是,对话框中显示的属性因打印机的功能而异。 下图显示了典型的 “页面设置 ”对话框。

如果用户单击“确定”按钮,在 页面框类 结构中设置各种成员以指定用户的选择后,页面设置将返回真。

纸宽、纸高、左宽、上宽、右宽、下宽 等成员得到用户指定的值。

环境 和 名称 成员包含 设备环境、名称类 结构的全局内存句柄。

这些结构包含其他页面信息以及有关打印机的信息。 可以使用此信息准备要发送到所选打印机的输出。

如果用户取消“ 页面设置 ”对话框或发生错误, 页面设置 将返回假。

若要确定错误的原因,请调用 对话错误 函数来检索扩展的错误值。


示例代码:
页面框类 页面(长度=84,标志=0x40005,左宽=1250,上宽=1000,右宽=1250,下宽=1000);
//标志=4千分之一英寸+1指定边距+0x40000启用重绘回调
程序段 窗体启动;//以上代码为全局变量,在窗体启动程序段进行赋值
页面.窗口=窗体;//指定页面设置框的窗口为程序主窗体
页面.重绘回调=@设置回调;//指定页面设置框的重绘回调为设置回调,也可以指定为窗体消息
结束//换到其它地方书写代码
程序段 设置回调(窗口,消息,设备,矩形类 数据);//设置回调跟窗体消息相同
判断(消息)为 0x403//此为页面设置对话框边距矩形的消息
{边框=取元素色(13);//获取系统高亮颜色
画笔=创建画笔(3,1,边框)//使用交替的短划线和点创建笔宽为1的画笔
选择对象(设备,画笔)//回调函数的第三参数是打印的设备
画方块(设备,数据.左,数据.顶,数据.宽,数据.高)}//在打印设备上绘制矩形方块
结束//示例代码结束

打印对话框-回调函数

中文名称英文名称示例作用
打印回调Lpprinthookproc打印回调(窗口,消息,参数,数据)接收用于 “打印 ”对话框的默认对话框过程的消息或通知。
打印设置Lpsetuphookproc打印设置(窗口,消息,参数,数据)与 打印选项 函数一起使用的挂钩过程接收消息或通知。适用于 “打印设置 ”对话框
页面绘图Lppagepainthook页面绘图(窗口,消息,参数,数据)接收允许您在“ 页面设置 ”对话框中自定义示例页面绘图的消息。
页面回调Lppagesetuphook页面回调(窗口,消息,参数,数据)接收用于 “页面设置 ”对话框的默认对话框过程的消息或通知。

页面框类

中文名字英文名称长度作用解释
页面框类PAGESETUPDLG84   用来显示打印对话框或打印设置对话框。
页面框类——成员表
中文英文类型作用解释
长度lStructSize整数指定这个结构的大小,以字节为单位。
窗口hwndOwner整数拥有对话框的窗口的句柄。可不指定
环境hDevMode整数包含打印机设备与环境信息的DEVMODE结构句柄
名称hDevNames整数包含驱动器名、打印机名和输出端口名的设备名结构DEVNAMES句柄
标志Flags整数用于打印公用对话框初始化的标志位
纸宽ptPaperSize.x整数指定用户选择的纸张的宽度
纸高ptPaperSize.y整数确指定用户选择的纸张的高度
左边rtMinMargin.left整数指定左边距的最小允许宽度
上边rtMinMargin.top整数指定上边距的最小允许宽度
右边rtMinMargin.right整数指定右边距的最小允许宽度
下边rtMinMargin.bottom整数指定下边距的最小允许宽度
左宽rtMargin.left整数指定左边距的宽度
上宽rtMargin.top整数指定上边距的宽度
右宽rtMargin.right整数指定右边距的宽度
下宽rtMargin.bottom整数指定下边距的宽度
实例hInstance整数程序实例,很少使用
数据lCustData整数指定系统传递给设置回调过程的应用程序定义数据
设置回调lpfnPageSetupHook整数挂接回调过程的指针,可以处理针对该对话框的消息,可忽略
重绘回调lpfnPagePaintHook整数挂钩回调过程的指针,重新绘制示例页面时,可在收到消息时自定义样本页面的外观
设置模板名lpPageSetupTemplateName整数对话框模板资源的名称,可忽略
设置模板hPageSetupTemplate整数包含对话框模板的内存对象的句柄

页面设置选项

中文名字英文名称作用解释
PSD_DEFAULTMINMARGINS0x00000000将用户可以为页边距指定的最小值设置为打印机允许的最小页边距。 这是默认值。 如果还指定 了PSD_MARGINS 和 PSD_MINMARGINS 标志,则忽略此标志。
PSD_DISABLEMARGINS0x00000010禁用边距控件,防止用户设置边距。
PSD_DISABLEORIENTATION0x00000100禁用方向控件,从而阻止用户设置页面方向。
PSD_DISABLEPAGEPAINTING0x00080000阻止对话框绘制示例页的内容。 如果启用 页面绘图 挂钩过程,仍可以绘制示例页面的内容。
PSD_DISABLEPAPER0x00000200禁用纸张控件,防止用户设置页面参数,例如纸张大小和来源。
PSD_DISABLEPRINTER0x00000020已过时。Windows XP/2000:禁用“ 打印机 ”按钮,防止用户调用包含其他打印机设置信息的对话框。
PSD_ENABLEPAGEPAINTHOOK0x00040000启用 重绘回调 成员中指定的挂钩过程。
PSD_ENABLEPAGESETUPHOOK0x00002000启用 设置回调 成员中指定的挂钩过程。
PSD_ENABLEPAGESETUPTEMPLATE0x00008000指示 实例 和 设置模板名 成员指定要用于替代默认模板的对话框模板。
PSD_ENABLEPAGESETUPTEMPLATEHANDLE0x00020000指示 设置模板 成员标识包含预加载对话框模板的数据块。 如果指定了此标志,系统将忽略 设置模板名 成员。
PSD_INHUNDREDTHSOFMILLIMETERS0x00000008指示百分之一毫米是边距和纸张大小的度量单位。可以在输入时设置此标志,以替代用户区域设置的默认度量单位。
PSD_INTHOUSANDTHSOFINCHES0x00000004指示千分之一英寸是边距和纸张大小的度量单位。函数返回时,对话框会设置此标志以指示使用的单位。
PSD_INWININIINTLMEASURE0x00000000保留。
PSD_MARGINS0x00000002使系统使用指定的值作为左、上、右和下边距的初始宽度。如果未设置 PSD_MARGINS ,系统将所有边距的初始宽度设置为 1 英寸。
PSD_MINMARGINS0x00000001使系统使用指定的值作为左、上、右和下边距的最小允许宽度。系统会阻止用户输入小于指定最小值的宽度。
PSD_NONETWORKBUTTON0x00200000隐藏和禁用“ 网络 ”按钮。
PSD_NOWARNING0x00000080防止系统在没有默认打印机时显示警告消息。
PSD_RETURNDEFAULT0x00000400不显示对话框。将 环境 和 名称 成员设置为为系统默认打印机初始化的 设备环境、名称类 结构的句柄。
PSD_SHOWHELP0x00000800使对话框显示 “帮助” 按钮。 窗口 成员必须指定窗口,以接收当用户单击“帮助”按钮时对话框发送的 HELPMSGSTRING 注册消息。

纸张或信封的方向——常量定义

数值作用解释
0x0001横向模式下的纸张 (点阵)
0x0003横向模式下的纸张 (HPPCL)
0x0005纵向模式下的纸张 (点阵)
0x0007纵向模式下的纸张 (HPPCL)
0x000b横向模式下的信封 (HPPCL)
0x000d纵向模式下的信封 (点阵)
0x0019横向模式下的信封 (点阵)
0x001f纵向模式下的信封 (HPPCL)