LPCFHOOKPROC 回调函数 (commdlg.h)

接收用于 “字体 ”对话框的默认对话框过程的消息或通知。 这是应用程序定义的或库定义的回调过程,与 ChooseFont 函数一起使用。

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

语法

LPCFHOOKPROC Lpcfhookproc;

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

参数

unnamedParam1

消息所针对的 “字体 ”对话框的句柄。

unnamedParam2

接收的消息的标识符。

unnamedParam3

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

unnamedParam4

关于消息的附加信息。 确切的含义取决于 unnamedParam2 参数的值。 如果 unnamedParam2 参数指示 WM_INITDIALOG 消息, 则 unnamedParam4 是指向 CHOOSEFONT 结构的指针,其中包含创建对话框时指定的值。

返回值

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

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

备注

使用 ChooseFont 函数创建 字体 对话框时,可以提供 CFHookProc 挂钩过程来处理用于对话框过程的消息或通知。 若要启用挂钩过程,请使用传递给对话框创建函数的 CHOOSEFONT 结构。 在 lpfnHook 成员中指定挂钩过程的地址,并在 Flags 成员中指定CF_ENABLEHOOK标志。

默认对话框过程先处理 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)

另请参阅

CHOOSEFONT

ChooseFont

通用对话框库

概念性

EndDialog

PostMessage

引用

WM_CTLCOLORDLG

WM_INITDIALOG