gpt4 book ai didi

c++ - 来自 HWND 引用的关闭回调或 WM_CLOSE

转载 作者:可可西里 更新时间:2023-11-01 10:28:00 26 4
gpt4 key购买 nike

我正在调用 HtmlHelpA winapi 方法来显示我的应用程序的 .chm。此方法立即返回一个 HWND,并且帮助窗口显示为一个单独的窗口。

除了窗口,我还为这个 hwnd 设置了一个计时器。我的问题是我需要知道此窗口何时关闭以终止计时器。

我的第一个方法是尝试注册 WndProc 回调,但我不能这样做,因为我没有创建窗口,我只有对 hwnd 的引用。

然后我尝试使用 Hook (SetWindowsHookEx),但 HOOKPROC 不会将 HWND 作为参数传递给回调。此外,我需要知道这个 hwnd 的线程。

有什么方法可以在 HWND 关闭或让 WndProc 等待 WM_CLOSE 消息时注册回调?

最佳答案

如果需要,您可以为现有窗口注册一个新的窗口过程。查看有关 SetWindowLongPtr() 的文档.

像这样调用它:

SetWindowLongPtr(hwnd, GWLP_WNDPROC, &MyCustomHelpWindowProc);

请记住,窗口子类化非常微妙。您可能希望将旧的窗口过程存储在某个地方并调用它,而不是为您不感兴趣的消息调用 DefWindowProc()

关于c++ - 来自 HWND 引用的关闭回调或 WM_CLOSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8509726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com