PAGESETUPDLG结构包含PageSetupDlg函数用于初始化“页面设置”公共对话框的信息。在用户关闭对话框后,系统将在此结构中返回有关用户定义的页面参数的信息。
typedef struct tagPSD { A set of bit flags that you can use to initialize the Page Setup common dialog box.
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
DWORD Flags;
POINT ptPaperSize;
RECT rtMinMargin;
RECT rtMargin;
HINSTANCE hInstance;
LPARAM lCustData;
LPPAGESETUPHOOK lpfnPageSetupHook;
LPPAGEPAINTHOOK lpfnPagePaintHook;
LPCTSTR lpPageSetupTemplateName;
HGLOBAL hPageSetupTemplate;
} PAGESETUPDLG, * LPPAGESETUPDLG;
会员
lStructSize
指定此结构的大小(以字节为单位)。
hwndOwner
标识拥有该对话框的窗口。该成员可以是任何有效的窗口句柄,如果对话框没有所有者,它可以为NULL。
hDevMode
处理包含DEVMODE结构的全局内存对象。在输入时,如果给出句柄,则使用相应DEVMODE结构中的值初始化对话框中的控件。在输出时,对话框将hDevMode设置为DEVMODE结构的全局内存句柄,其中包含指定用户选择的值。如果用户的选择不可用,则对话框将hDevMode设置为NULL。
hDevNames
处理包含DEVNAMES结构的全局内存对象。此结构包含三个指定驱动程序名称,打印机名称和输出端口名称的字符串。在输入时,如果给出句柄,则相应的DEVNAMES结构中的字符串用于初始化对话框中的控件。在输出时,对话框将hDevNames设置为包含指定用户选择的字符串的DEVNAMES结构的全局内存句柄。如果用户的选择不可用,则对话框将hDevNames设置为NULL。
旗
一组位标志,可用于初始化“页面设置”公共对话框。当对话框返回时,它设置这些标志以指示用户的输入。该成员可以是以下标志的组合:
PSD_DEFAULTMINMARGINS | ||||||||||||||||||||||
设置用户可以为页边距指定的最小值,作为打印机允许的最小边距。这是默认值。如果还指定了PSD_MARGINS和PSD_MINMARGINS标志,则此标志将被忽略。 | ||||||||||||||||||||||
PSD_DISABLEMARGINS | ||||||||||||||||||||||
禁用边距控件,阻止用户设置边距。 | ||||||||||||||||||||||
PSD_DISABLEORIENTATION | ||||||||||||||||||||||
禁用方向控制,阻止用户设置页面方向。 | ||||||||||||||||||||||
PSD_DISABLEPAGEPAINTING | ||||||||||||||||||||||
阻止对话框绘制示例页面的内容。如果启用PagePaintHook挂钩过程,您仍然可以绘制示例页面的内容。 | ||||||||||||||||||||||
PSD_DISABLEPAPER | ||||||||||||||||||||||
禁用纸张控制,防止用户设置页面参数,如纸张尺寸和来源。 | ||||||||||||||||||||||
PSD_DISABLEPRINTER | ||||||||||||||||||||||
禁用打印机按钮,阻止用户调用包含其他打印机设置信息的对话框。 | ||||||||||||||||||||||
PSD_ENABLEPAGEPAINTHOOK | ||||||||||||||||||||||
启用lpfnPagePaintHook成员中指定的挂接过程。 | ||||||||||||||||||||||
PSD_ENABLEPAGESETUPHOOK | ||||||||||||||||||||||
启用lpfnPageSetupHook成员中指定的挂接过程。 | ||||||||||||||||||||||
PSD_ENABLEPAGESETUPTEMPLATE | ||||||||||||||||||||||
表示的hInstance和lpPageSetupTemplateName成员指定要用于替换默认模板的对话框模板。 | ||||||||||||||||||||||
PSD_ENABLEPAGESETUPTEMPLATEHANDLE | ||||||||||||||||||||||
表示hPageSetupTemplate成员标识包含预加载对话框模板的数据块。如果指定了该标志,系统将忽略lpPageSetupTemplateName成员。 | ||||||||||||||||||||||
PSD_INHUNDREDTHSOFMILLIMETERS | ||||||||||||||||||||||
表示百分之一毫米是边距和纸张尺寸的测量单位。rtMargin,rtMinMargin和ptPaperSize成员中的值以百分之一毫米为单位。您可以在输入上设置此标志来覆盖用户区域设置的默认测量单位。当函数返回时,对话框设置此标志以指示所使用的单位。 | ||||||||||||||||||||||
PSD_INTHOUSANDTHSOFINCHES | ||||||||||||||||||||||
表示千分之一英寸是边距和纸张尺寸的测量单位。rtMargin,rtMinMargin和ptPaperSize成员中的值为千分之几英寸。您可以在输入上设置此标志来覆盖用户区域设置的默认测量单位。当函数返回时,对话框设置此标志以指示所使用的单位。 | ||||||||||||||||||||||
PSD_INWININIINTLMEASURE | ||||||||||||||||||||||
未实现。 | ||||||||||||||||||||||
PSD_MARGINS | ||||||||||||||||||||||
使系统使用rtMargin成员中指定的值作为左,上,右和下边距的初始宽度。如果未设置PSD_MARGINS,则系统将所有边距的初始宽度设置为一英寸。 | ||||||||||||||||||||||
PSD_MINMARGINS | ||||||||||||||||||||||
使系统使用rtMinMargin成员中指定的值作为左,上,右和底部页边距的最小允许宽度。该系统防止用户输入小于指定最小值的宽度。如果未指定PSD_MINMARGINS,则系统将允许的最小允许宽度设置为打印机允许的宽度。 | ||||||||||||||||||||||
PSD_NOWARNING | ||||||||||||||||||||||
当没有默认打印机时,防止系统显示警告消息。 | ||||||||||||||||||||||
PSD_RETURNDEFAULT | ||||||||||||||||||||||
PageSetupDlg不显示对话框。而是将hDevNames和hDevMode成员设置为系统默认打印机初始化的DEVMODE和DEVNAMES结构。PageSetupDlg如果hDevNames或hDevMode不为空,则返回错误。 | ||||||||||||||||||||||
PSD_SHOWHELP | ||||||||||||||||||||||
导致对话框显示帮助按钮。hwndOwner成员必须指定窗口以接收当用户单击“帮助”按钮时对话框发送的HELPMSGSTRING注册消息。 |
ptPaperSize
指定用户选择的纸张的尺寸。PSD_INTHOUSANDTHSOFINCHES或PSD_INHUNDREDTHSOFMILLIMETERS标志表示测量单位。
rtMinMargin
指定左,上,右和下边距的最小允许宽度。如果未设置PSD_MINMARGINS标志,系统将忽略此成员。这些值必须小于或等于rtMargin成员中指定的值。PSD_INTHOUSANDTHSOFINCHES或PSD_INHUNDREDTHSOFMILLIMETERS标志表示测量单位。
rtMargin
指定左,上,右和下边距的宽度。如果设置PSD_MARGINS标志,rtMargin指定初始保证金值。当PageSetupDlg返回时,rtMargin包含用户选择的边距宽度。PSD_INHUNDREDTHSOFMILLIMETERS或PSD_INTHOUSANDTHSOFINCHES标志表示测量单位。
的hInstance
如果在旗成员中设置了PSD_ENABLEPAGESETUPTEMPLATE标志,则的hInstance是包含由lpPageSetupTemplateName成员命名的对话框模板的应用程序或模块实例的句柄。
lCustData
指定系统传递给由lpfnPageSetupHook成员标识的挂接过程的应用程序定义数据。当系统向挂接过程发送WM_INITDIALOG消息时,消息的【lParam的】参数是指向创建对话框时指定的PAGESETUPDLG结构的指针。挂钩过程可以使用此指针获取lCustData值。
lpfnPageSetupHook
指向PageSetupHook挂接过程的指针,可以处理针对该对话框的消息。除非在旗成员中设置了PSD_ENABLEPAGESETUPHOOK标志,否则此成员将被忽略。
lpfnPagePaintHook
指向PagePaintHook挂钩过程的指针,每当重新绘制示例页面时,都会从对话框接收WM_PSD_ *消息。通过处理消息,挂钩过程可以自定义样本页面的外观。除非在旗成员中设置了PSD_ENABLEPAGEPAINTHOOK标志,否则此成员将被忽略。
lpPageSetupTemplateName
指向由的hInstance成员标识的模块中的对话框模板资源的以null结尾的字符串的指针。此模板代替标准对话框模板。对于编号的对话框资源,lpPageSetupTemplateName可以是MAKEINTRESOURCE宏返回的值。除非在旗成员中设置了PSD_ENABLEPAGESETUPTEMPLATE标志,否则该成员将被忽略。
hPageSetupTemplate
如果在旗成员中设置了PSD_ENABLEPAGESETUPTEMPLATEHANDLE标志,则hPageSetupTemplate是包含对话框模板的内存对象的句柄。
备注
如果未指定PSD_INHUNDREDTHSOFMILLIMETERS和PSD_INTHOUSANDTHSOFINCHES标志,则系统将查询默认用户区域设置的LOCALE_IMEASURE值,以确定边距宽度和纸张尺寸的度量单位(百分之几或毫米)。
如果hDevNames和hDevMode都有有效的句柄,DEVNAMES结构的wDeviceOffset成员指定的打印机名称与DEVMODE结构的dmDeviceName??成员所指定的名称不同,系统默认使用wDeviceOffset指定的名称。
也可以看看
DEVMODE, DEVNAMES, MAKEINTRESOURCE, PagePaintHook, PageSetupDlg, PageSetupHook, WM_INITDIALOG