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