【问题标题】:Receive messages from a window you only have the HWND of?从你只有HWND的窗口接收消息?
【发布时间】:2011-11-14 14:55:27
【问题描述】:

我正在使用游戏 API。它为我创建了窗口,但有一些消息我想做一些事情。例如,当屏幕调整大小时,我想显示一个黑屏。本质上,我有我的主窗口的 HWND 并且想收听消息并让它们在处理之前或之后通过我的自定义 WndProc,我只想知道窗口何时收到 WM_SIZE 之类的消息。

有这方面的 API 吗?

谢谢

【问题讨论】:

标签: c winapi


【解决方案1】:

如果您与要拦截 WM_SIZE 的窗口处于同一进程中,您可以简单地将 WndProc 替换为 SetWindowLongPtrGWLP_WNDPROC。请注意,您必须将其他消息传递给原始 WndProc。

但是,如果你在不同的进程中,那么你需要找到一种使用钩子的方法,例如SetWindowsHookEx

【讨论】:

  • +1;子类化可能是这里的方法。仅供参考 - 对于 WNDPROC 和其他指针大小值,不推荐使用 SetWindowLong;使用 SetWindowLongPtr 与 Win32 和 Win64 兼容 - 已编辑答案以反映这一点。
  • 顺便说一句:MSDN 链接仍然指向 SetWindowLong 而不是 SetWindowLongPtr
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 2021-08-21
  • 2018-02-02
  • 1970-01-01
  • 2023-02-24
相关资源
最近更新 更多