LPSETUPHOOKPROC 回调函数 (commdlg.h)

PrintDlg 函数一起使用的应用程序定义或库定义的回调函数。 挂钩过程接收用于 “打印设置 ”对话框的默认对话框过程的消息或通知。

LPSETUPHOOKPROC 类型定义指向此回调函数的指针。 SetupHookProc 是应用程序定义的或库定义的函数名称的占位符。

语法

LPSETUPHOOKPROC Lpsetuphookproc;

UINT_PTR Lpsetuphookproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

参数

unnamedParam1

消息所针对的 “打印设置 ”对话框的句柄。

unnamedParam2

正在接收的消息的标识符。

unnamedParam3

关于消息的附加信息。 确切的含义取决于 unnamedParam2 参数的值。

unnamedParam4

关于消息的附加信息。 确切的含义取决于 unnamedParam2 参数的值。

返回值

如果挂钩过程返回零,则默认对话框过程将处理消息。

如果挂钩过程返回非零值,则默认对话框过程将忽略该消息。

注解

打印设置 ”对话框已被 “页面设置 ”对话框取代,新应用程序应使用该对话框。 但是,为了兼容, PrintDlg 函数继续支持显示“ 打印设置 ”对话框。 可以为“打印设置”对话框提供 SetupHookProc 挂钩过程,以处理用于对话框过程的消息或通知。

若要启用挂钩过程,请使用传递给对话框创建函数的 PRINTDLG 结构。 在 lpfnSetupHook 成员中指定挂钩过程的地址,并在 Flags 成员中指定PD_ENABLESETUPHOOK标志。

默认对话框过程先处理 WM_INITDIALOG 消息,然后再将其传递给挂钩过程。 对于所有其他消息,挂钩过程首先接收消息。 然后,挂钩过程的返回值确定默认对话过程是处理消息还是忽略它。

如果挂钩过程处理 WM_CTLCOLORDLG 消息,则必须返回有效的画笔句柄来绘制对话框的背景。 通常,如果挂钩过程处理任何 WM_CTLCOLOR* 消息,则必须返回有效的画笔句柄来绘制指定控件的背景。

请勿从挂钩过程中调用 EndDialog 函数。 相反,挂钩过程可以调用 PostMessage 函数,将具有 IDABORT 值的WM_COMMAND消息发布到对话框过程。 发布 IDABORT 将关闭对话框,并使对话框函数返回 FALSE。 如果需要了解挂钩过程关闭对话框的原因,则必须在挂钩过程与应用程序之间提供自己的通信机制。

可以对公共对话框的标准控件进行子类化。 但是,对话框过程也可能对控件进行子类化。 因此,在挂钩过程处理 WM_INITDIALOG 消息时,应子类控件。 这可确保子类过程在对话框过程设置的子类过程之前接收特定于控件的消息。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 commdlg.h (包括 Windows.h)

另请参阅

通用对话框库

概念性

EndDialog

PRINTDLG

PostMessage

PrintDlg

引用

WM_CTLCOLORDLG

WM_INITDIALOG