公共控件,自定义控件及其父窗口使用WM_NOTIFYFORMAT消息来确定控件是否应在控件用于与其父窗口通信的WM_NOTIFY通知消息中使用ANSI或Unicode结构。WM_NOTIFYFORMAT消息从控件发送到其父窗口,并从父窗口发送到控件。
hwndFrom = (HWND) wParam; //发送此消息的窗口的句柄
Command = lParam; //指定此消息的性质的命令值
参数
【中的hwndFrom】
价值【wParam中】.处理发送WM_NOTIFYFORMAT消息的窗口。如果【命令】为NF_QUERY,则【中的hwndFrom】是控件的句柄。如果【命令】是NF_REQUERY,这是控件的父窗口的句柄。
【命令】
值【lParam的。】一个指定WM_NOTIFYFORMAT消息性质的命令值。定义了以下值:
值 | 含义 |
NF_QUERY | 该消息是一个查询,用于确定是否应在WM_NOTIFY消息中使用ANSI或Unicode结构。该命令从控件发送到其父窗口。此命令在创建控件期间发送,并响应于NF_REQUERY命令。 |
NF_REQUERY | 该消息是控件向其父窗口发送此消息的NF_QUERY形式的请求。该命令从控件的父窗口发送到控件。父窗口要求控件重新查询WM_NOTIFY消息中要使用的结构类型。 |
返回值
返回值是以下之一:
值 | 含义 |
NFR_ANSI | 应在控制台发送的WM_NOTIFY消息中使用ANSI结构。 |
NFR_UNICODE | Unicode结构应该在WM_NOTIFY消息中使用,由控件发送。 |
0 | 发生错误 |
如果【命令】是NF_REQUERY,则返回值是重新查询操作的结果。
备注
当创建公共控件时,控件将向其父窗口发送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形式发送到父窗口。
也可以看看