PAGESETUPDLGW 结构 (commdlg.h)
包含 PageSetupDlg 函数用于初始化 “页面设置 ”对话框的信息。 用户关闭对话框后,系统会返回有关此结构中用户定义的页面参数的信息。
语法
typedef struct tagPSDW {
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
DWORD Flags;
POINT ptPaperSize;
RECT rtMinMargin;
RECT rtMargin;
HINSTANCE hInstance;
LPARAM lCustData;
LPPAGESETUPHOOK lpfnPageSetupHook;
LPPAGEPAINTHOOK lpfnPagePaintHook;
LPCWSTR lpPageSetupTemplateName;
HGLOBAL hPageSetupTemplate;
} PAGESETUPDLGW, *LPPAGESETUPDLGW;
成员
lStructSize
类型:DWORD
此结构的大小(以字节为单位)。
hwndOwner
类型:HWND
拥有对话框的窗口的句柄。 此成员可以是任何有效的窗口句柄,如果对话框没有所有者,则它可以为 NULL 。
hDevMode
类型: HGLOBAL
包含 DEVMODE 结构的全局内存对象的句柄。 输入时,如果指定了句柄,则相应的 DEVMODE 结构中的值用于初始化对话框中的控件。 在输出时,对话框将 hDevMode 设置为包含指定用户选择的值的 DEVMODE 结构的全局内存句柄。 如果用户的选择不可用,对话框会将 hDevMode 设置为 NULL。
hDevNames
类型: HGLOBAL
包含 DEVNAMES 结构的全局内存对象的句柄。 此结构包含三个指定驱动程序名称、打印机名称和输出端口名称的字符串。 输入时,如果指定了句柄,则相应的 DEVNAMES 结构中的字符串用于初始化对话框中的控件。 在输出时,对话框将 hDevNames 设置为全局内存句柄,该 结构 包含指定用户选择的字符串。 如果用户的选择不可用,对话框会将 hDevNames 设置为 NULL。
Flags
类型:DWORD
可用于初始化 “页面设置 ”对话框的一组位标志。 当对话框返回时,它会设置这些标志以指示用户的输入。 此成员可以是以下一个或多个值。
值 | 含义 |
---|---|
|
将用户可以为页边距指定的最小值设置为打印机允许的最小页边距。 这是默认值。 如果还指定 了PSD_MARGINS 和 PSD_MINMARGINS 标志,则忽略此标志。 |
|
禁用边距控件,防止用户设置边距。 |
|
禁用方向控件,从而阻止用户设置页面方向。 |
|
阻止对话框绘制示例页的内容。 如果启用 PagePaintHook 挂钩过程,仍可以绘制示例页面的内容。 |
|
禁用纸张控件,防止用户设置页面参数,例如纸张大小和来源。 |
|
已过时。
Windows XP/2000: 禁用“ 打印机 ”按钮,防止用户调用包含其他打印机设置信息的对话框。 |
|
启用 lpfnPagePaintHook 成员中指定的挂钩过程。 |
|
启用 lpfnPageSetupHook 成员中指定的挂钩过程。 |
|
指示 hInstance 和 lpPageSetupTemplateName 成员指定要用于替代默认模板的对话框模板。 |
|
指示 hPageSetupTemplate 成员标识包含预加载对话框模板的数据块。 如果指定了此标志,系统将忽略 lpPageSetupTemplateName 成员。 |
|
指示百分之一毫米是边距和纸张大小的度量单位。 rtMargin、rtMinMargin 和 ptPaperSize 成员中的值以百分之百毫米为单位。 可以在输入时设置此标志,以替代用户区域设置的默认度量单位。 函数返回时,对话框会设置此标志以指示使用的单位。 |
|
指示千分之一英寸是边距和纸张大小的度量单位。 rtMargin、rtMinMargin 和 ptPaperSize 成员中的值以千分之几英寸为单位。 可以在输入时设置此标志,以替代用户区域设置的默认度量单位。 函数返回时,对话框会设置此标志以指示使用的单位。 |
|
保留。 |
|
使系统使用 rtMargin 成员中指定的值作为左、上、右和下边距的初始宽度。 如果未设置 PSD_MARGINS ,系统将所有边距的初始宽度设置为 1 英寸。 |
|
使系统使用 rtMinMargin 成员中指定的值作为左、上、右和下边距的最小允许宽度。 系统会阻止用户输入小于指定最小值的宽度。 如果未指定 PSD_MINMARGINS ,系统会将允许的最小宽度设置为打印机允许的宽度。 |
|
隐藏和禁用“ 网络 ”按钮。 |
|
防止系统在没有默认打印机时显示警告消息。 |
|
PageSetupDlg 不显示对话框。 相反,它将 hDevNames 和 hDevMode 成员设置为为系统默认打印机初始化的 DEVMODE 和 DEVNAMES 结构的句柄。 如果 hDevNames 或 hDevMode 不为 NULL,PageSetupDlg 将返回错误。 |
|
使对话框显示 “帮助” 按钮。 hwndOwner 成员必须指定窗口,以接收当用户单击“帮助”按钮时对话框发送的 HELPMSGSTRING 注册消息。 |
ptPaperSize
类型: POINT
用户选择的纸张的尺寸。 PSD_INTHOUSANDTHSOFINCHES或PSD_INHUNDREDTHSOFMILLIMETERS标志指示度量单位。
rtMinMargin
类型: RECT
左边距、上边距、右边距和下边距允许的最小宽度。 如果未设置 PSD_MINMARGINS 标志,系统将忽略此成员。 这些值必须小于或等于 rtMargin 成员中指定的值。 PSD_INTHOUSANDTHSOFINCHES或PSD_INHUNDREDTHSOFMILLIMETERS标志指示度量单位。
rtMargin
类型: RECT
左边距、上边距、右边距和下边距的宽度。 如果设置 PSD_MARGINS 标志, rtMargin 将指定初始边距值。 当 PageSetupDlg 返回时,rtMargin 包含用户选择的边距宽度。 PSD_INHUNDREDTHSOFMILLIMETERS或PSD_INTHOUSANDTHSOFINCHES标志指示度量单位。
hInstance
类型: HINSTANCE
如果在 Flags 成员中设置了PSD_ENABLEPAGESETUPTEMPLATE标志,则 hInstance 是包含由 lpPageSetupTemplateName 成员命名的对话框模板的应用程序或模块实例的句柄。
lCustData
类型:LPARAM
系统传递给 由 lpfnPageSetupHook 成员标识的挂钩过程的应用程序定义数据。 当系统将 WM_INITDIALOG 消息发送到挂钩过程时,消息的 lParam 参数是指向创建对话框时指定的 PAGESETUPDLG 结构的指针。 挂钩过程可以使用此指针获取 lCustData 值。
lpfnPageSetupHook
类型: LPPAGESETUPHOOK
指向 PageSetupHook 挂钩过程的指针,该过程可以处理用于对话框的消息。 除非在 Flags 成员中设置了PSD_ENABLEPAGESETUPHOOK标志,否则将忽略此成员。
lpfnPagePaintHook
类型: LPPAGEPAINTHOOK
指向 PagePaintHook 挂钩过程的指针,每当重新绘制示例页时,该挂钩过程将从对话框接收 WM_PSD_* 消息。 通过处理消息,挂钩过程可以自定义示例页的外观。 除非在 Flags 成员中设置了PSD_ENABLEPAGEPAINTHOOK标志,否则将忽略此成员。
lpPageSetupTemplateName
类型: LPCTSTR
hInstance 成员标识的模块中对话框模板资源的名称。 此模板将替换为标准对话框模板。 对于编号对话框资源, lpPageSetupTemplateName 可以是 MAKEINTRESOURCE 宏返回的值。 除非在 Flags 成员中设置了PSD_ENABLEPAGESETUPTEMPLATE标志,否则将忽略此成员。
hPageSetupTemplate
类型: HGLOBAL
如果在 Flags 成员中设置了PSD_ENABLEPAGESETUPTEMPLATEHANDLE标志,则 hPageSetupTemplate 是包含对话框模板的内存对象的句柄。
注解
如果未指定 PSD_INHUNDREDTHSOFMILLIMETERS 和 PSD_INTHOUSANDTHSOFINCHES 标志,系统会查询默认用户区域设置 的LOCALE_IMEASURE 值,以确定边距宽度和纸张大小的度量单位 (百分之几百毫米或千分之几英寸) 。
如果 hDevNames 和 hDevMode 都具有有效的句柄,并且由 DEVNAMES 结构的 wDeviceOffset 成员指定的打印机名称与 DEVMODE 结构的 dmDeviceName 成员指定的名称不同,则系统默认使用 wDeviceOffset 指定的名称。
注意
commdlg.h 标头将 PAGESETUPDLG 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | commdlg.h (包括 Windows.h) |
另请参阅
概念性
其他资源
引用