CallWindowProcW 函数 (winuser.h) - Win32 apps

CallWindowProcW 函数 (winuser.h) - Win32 apps

将消息信息传递到指定的窗口过程。

语法

LRESULT CallWindowProcW(

[in] WNDPROC lpPrevWndFunc,

[in] HWND hWnd,

[in] UINT Msg,

[in] WPARAM wParam,

[in] LPARAM lParam

);

参数

[in] lpPrevWndFunc

类型:WNDPROC

上一个窗口过程。 如果通过使用设置为 GWL_WNDPROC 或 DWL_DLGPROC的 nIndex 参数调用 GetWindowLong 函数来获取此值,则它实际上是窗口或对话框过程的地址,或者仅 CallWindowProc有意义的特殊内部值。

[in] hWnd

类型:HWND

用于接收消息的窗口过程的句柄。

[in] Msg

类型:UINT

消息。

[in] wParam

类型:WPARAM

其他特定于消息的信息。 此参数的内容取决于 Msg 参数的值。

[in] lParam

类型:LPARAM

其他特定于消息的信息。 此参数的内容取决于 Msg 参数的值。

返回值

类型:LRESULT

返回值指定消息处理的结果,具体取决于发送的消息。

言论

将 CallWindowProc 函数用于窗口子类。 通常,具有相同类的所有窗口共享一个窗口过程。 子类是一个窗口或一组窗口,其消息被另一个窗口过程(或过程)截获和处理,然后传递给该类的窗口过程。

SetWindowLong 函数通过更改与特定窗口关联的窗口过程来创建子类,从而导致系统调用新窗口过程而不是上一个窗口过程。 应用程序必须通过调用 CallWindowProc,将新窗口过程未处理的任何消息传递给上一个窗口过程。 这允许应用程序创建窗口过程链。

如果定义了 STRICT,则 lpPrevWndFunc 参数的数据类型 WNDPROC。

WNDPROC 类型声明如下:

LRESULT (CALLBACK* WNDPROC) (HWND, UINT, WPARAM, LPARAM);

如果未定义 STRICT,则 lpPrevWndFunc 参数的数据类型 FARPROC。

FARPROC 类型声明如下:

int (FAR WINAPI * FARPROC) ()

在 C 中,FARPROC 声明指示具有未指定参数列表的回调函数。 但在C++中,声明中的空参数列表指示函数没有参数。 这种微妙的区别可能会破坏粗心的代码。 下面是处理这种情况的一种方法:

#ifdef STRICT

WNDPROC MyWindowProcedure

#else

FARPROC MyWindowProcedure

#endif

...

lResult = CallWindowProc(MyWindowProcedure, ...) ;

有关使用空参数列表声明的函数的详细信息,请参阅 Bjarne Stroustrup C++ 编程语言第二版 。

CallWindowProc 函数处理 Unicode 到 ANSI 转换。 如果直接调用窗口过程,则不能利用此转换。

例子

有关示例,请参阅 子类化窗口

注意

winuser.h 标头将 CallWindowProc 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求

价值

最低支持的客户端

Windows 2000 Professional [仅限桌面应用]

支持的最低服务器

Windows 2000 Server [仅限桌面应用]

目标平台

窗户

标头

winuser.h (包括 Windows.h)

User32.lib

DLL

User32.dll

API 集

ext-ms-win-ntuser-window-l1-1-4(在 Windows 10 版本 10.0.14393 中引入)

另请参阅

概念

GetWindowLong

参考

SetClassLong

SetWindowLong

窗口过程

相关推荐

为何要重做弈星,最应该重做的不是明世隐吗?最失败的英雄之一
365最专业的数据服务平台

为何要重做弈星,最应该重做的不是明世隐吗?最失败的英雄之一

📅 08-02 👁️ 7794
旧电脑回收前怎么清除数据
365最专业的数据服务平台

旧电脑回收前怎么清除数据

📅 06-28 👁️ 9274
初中道法主观题答题答题技巧: “为什么”型题目
beat365正版网站唯一官网app

初中道法主观题答题答题技巧: “为什么”型题目

📅 06-30 👁️ 8952
鸭子炖汤的最佳搭配食材,让你越吃越健康
365最专业的数据服务平台

鸭子炖汤的最佳搭配食材,让你越吃越健康

📅 07-20 👁️ 512
公安局一般要求酒店监控视频保存多久有明文规定吗?是哪个规定呀
365最专业的数据服务平台

公安局一般要求酒店监控视频保存多久有明文规定吗?是哪个规定呀

📅 07-08 👁️ 7769
Word翻译功能在哪?Word自带的翻译工具使用方法
365bet官方网站

Word翻译功能在哪?Word自带的翻译工具使用方法

📅 07-26 👁️ 710
离开了我们15年,为什么“张国荣”这个符号依然活跃?
beat365正版网站唯一官网app

离开了我们15年,为什么“张国荣”这个符号依然活跃?

📅 07-04 👁️ 5294
智能表管理系统单机版简要使用说明(单机版)
365bet官方网站

智能表管理系统单机版简要使用说明(单机版)

📅 07-01 👁️ 4908