我有一个函数回调来处理窗口的事件,如 WM_SIZE。现在,如何将函数回调传递给打开的窗口?(它用于命令行应用程序)。
我见过 RegisterClassEx 但我认为它用于创建新窗口。
如果您想处理现有窗口的窗口消息,您有几个选择:
子类化。每个窗口都有一个“window proc”回调函数(您指的是),您可以使用SetWindowLongPtr
with替换它GWLP_WNDPROC
。然后在您自己的窗口过程中,您需要将消息转发到您替换的原始消息。但是有一些限制:
Windows 挂钩,使用SetWindowsHookEx
. 如果您想查看其他窗口的消息,请使用此选项 - 您可以查看给定线程或系统范围内窗口的所有消息。有不同类型的钩子可让您捕获不同类型的消息。这是一种相当繁重的方法;最后的手段,这样您就不会不必要地使系统陷入困境。