WM_NOTIFYFORMAT消息

确定窗口是否接受 WM_NOTIFY 通知消息中的 ANSI 或 Unicode 结构。 WM_NOTIFYFORMAT 消息从公共控件发送到其父窗口,从父窗口发送到公共控件。

参数

wParam

正在发送WM_NOTIFYFORMAT消息的窗口 句柄。 如果 lParam NF_QUERY,则此参数是控件的句柄。 如果 lParam NF_REQUERY,则此参数是控件父窗口的句柄。

lParam

指定WM_NOTIFYFORMAT消息的性质 命令值。 此值为以下值之一:

含义
NF_QUERY
消息是一个查询,用于确定是否应在 WM_NOTIFY 消息中使用 ANSI 或 Unicode 结构。 在创建控件期间以及响应NF_REQUERY命令时,此命令从控件发送到其父窗口。
NF_REQUERY
消息是控件将此消息的NF_QUERY形式发送到其父窗口的请求。 此命令从父窗口发送。 父窗口要求控件重新查询 WM_NOTIFY消息中使用的 结构类型。 如果 lParam NF_REQUERY,则返回值是重新查询操作的结果。

返回值

返回以下值之一。

返回代码 说明
NFR_ANSI
ANSI 结构应用于 WM_NOTIFY 控件发送的消息。
NFR_UNICODE
应在 控件发送WM_NOTIFY 消息中使用 Unicode 结构。
0
出现了错误。

注解

创建公共控件时,控件会将 WM_NOTIFYFORMAT 消息发送到其父窗口,以确定在 WM_NOTIFY 消息中使用的结构类型。 如果父窗口不处理此消息, DefWindowProc 函数将根据父窗口的类型进行响应。 也就是说,如果父窗口是 Unicode 窗口, DefWindowProc 返回NFR_UNICODE,如果父窗口是 ANSI 窗口, 则 DefWindowProc 返回NFR_ANSI。 如果父窗口是对话框,并且不处理此消息, DefDlgProc 函数同样会根据对话框的类型 (Unicode 或 ANSI) 做出响应。

父窗口可以通过将 lParam 设置为 NF_REQUERY 并将WM_NOTIFYFORMAT消息发送到控件来更改公共控件在WM_NOTIFY消息中所使用的结构类型。 这会导致控件将WM_NOTIFYFORMAT消息的 NF_QUERY 形式发送到父窗口。

所有常用控件都将发送 WM_NOTIFYFORMAT 消息。 但是,标准 Windows 控件 (编辑控件、组合框、列表框、按钮、滚动条和静态控件) 没有。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Winuser.h