“页面设置”对话框包含示例页面的图像,其中显示用户选择如何影响打印输出的外观。图像由表示所选纸张或信封类型的矩形组成,虚线矩形表示当前边距,部分(希腊文字)字符显示打印页面上的文字外观。
当您调用PageSetupDlg功能时,您可以提供PagePaintHook挂钩过程来自定义示例页面的外观。
To enable a PagePaintHook hook procedure
1.在PAGESETUPDLG结构的旗成员中设置PSD_ENABLEPAGEPAINTHOOK标志。
2.在lpfnPagePaintHook成员中指定挂钩过程的地址。
每当对话框即将绘制示例页面的内容时,挂接过程按照列出的顺序接收以下消息。
信息 | 含义 |
WM_PSD_PAGESETUPDLG | 该对话框即将绘制示例页面。挂钩过程可以使用此消息准备绘制示例页面的内容。 |
WM_PSD_FULLPAGERECT | 该对话框即将绘制示例页面。此消息指定样本页面的边界矩形。 |
WM_PSD_MINMARGINRECT | 该对话框即将绘制示例页面。此消息指定边距矩形。 |
WM_PSD_MARGINRECT | 该对话框即将绘制边距矩形。 |
WM_PSD_GREEKTEXTRECT | 该对话框即将在边框矩形内绘制希腊语文本。 |
WM_PSD_ENVSTAMPRECT | 对话框即将绘制信封样本页的信封字母矩形。此消息仅发送给信封。 |
WM_PSD_YAFULLPAGERECT | 对话框即将绘制信封样本页的返回地址部分。此信息是为信封和其他纸张尺寸发送的。 |
如果挂钩过程对于绘图序列(WM_PSD_PAGESETUPDLG,WM_PSD_FULLPAGERECT或WM_PSD_MINMARGINRECT)的前三个消息中的任何一个返回TRUE,对话框不会发送更多消息,并且不会在样本页面中绘制,直到下一次系统需要重绘样本页面。如果挂钩过程对所有三个消息返回FALSE,则对话框将发送绘图序列的其余消息。
如果挂钩过程对于绘图序列中的任何剩余消息返回TRUE,对话框不绘制示例页面的相应部分。如果挂钩过程返回任何这些消息的FALSE,该对话框将绘制示例页面的该部分。
要防止对话框绘制示例页面的内容,可以设置PSD_DISABLEPAGEPAINTING标志。此标志不影响您的PagePaintHook挂接过程,该过程仍然会收到所有WM_PSD_ *消息,并可以绘制示例页面内容。