- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在调用 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/
我正在为自定义对话框使用特殊的消息循环。当对话框打开并且窗口关闭时,我想达到下面的第二个 if(msg.message == WM_CLOSE)。 for(;;) { if(PeekMessa
本文对WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数的功能及区别做出了分析比对,有助于读者更好的对消息投递函数加以理解。详情如下: 1、WM_CLOSE、WM_DEST
我正在创建一个简单的 C# 应用程序来监视服务器上的公开应用程序,如果有任何消息框出现一个特定的窗口名称,则关闭该窗口并继续该过程。供应商随机出现信息消息框,它会挂起应用程序,直到单击 X 或 OK
我将子 hwnd 创建为带有关闭按钮的弹出窗口,并使用 WndchildProc 来处理来自子窗口的消息 m_childHwnd = CreateWindowEx( NULL, TEXT("STATI
我想“保护”某个窗口不被关闭。所以我想 Hook WM_CLOSE、WM_DESTOY 或 WM_QUIT。这就是我尝试这样做的: LRESULT CALLBACK WindowHookProc(in
我正在尝试从 C++ 应用程序关闭 C# .NET 4 WPF 应用程序。 C++ 应用程序使用枚举窗口的标准技术,找到对应于给定进程 ID 的窗口,通过 PostMessage 向窗口发送 WM_C
我知道在 Windows 通知消息中,WM_CLOSE 指的是通过窗口右上角的“X”按钮关闭窗口。 有谁知道用 File->Exit 关闭的通知消息? 我问的原因是因为我正在尝试实现 JNI nati
如何编写一个 WinForms 应用程序,它除了托盘图标外没有任何可见元素,同时允许该应用程序在文件正在使用时由 Windows Installer 关闭?据我了解,Windows Installer
当模态对话框处于事件状态时,主应用程序窗口是否可以检测到 WM_CLOSE 事件?。如果没有,是否有任何方法可以检测到 WM_CLOSE 事件,因为对话框的事件处理程序也没有检测到它。 要亲自观察此行
开始一个进程- ProcessStartInfo psi = new ProcessStartInfo("G:\\SampleWinApp.exe"); psi.UseShe
我有一个调用我的应用程序的外部应用程序,应该在工作完成后结束它。来自此外部应用程序的日志声称它在我的应用程序上使用了 WM_CLOSE。 如何在我的应用程序中截取 WM_CLOSE 消息来执行一些清理
我正在使用 Tray 应用程序。 Onj FormCloseQuery 我检查程序是否应该转到托盘,而不是关闭它,而是将其放入托盘中(CanClose := False) 但是,如果 Windows
我只想知道这两个消息常量有什么区别。覆盖时,我应该在 WndProc 方法中使用哪一个来处理关闭按钮消息。 最佳答案 WM_CLOSE无论何时以任何方式请求关闭窗口,都会作为窗口消息发送。 SC_CL
我只想知道这两个消息常量有什么区别。覆盖时,我应该在 WndProc 方法中使用哪一个来处理关闭按钮消息。 最佳答案 WM_CLOSE无论何时以任何方式请求关闭窗口,都会作为窗口消息发送。 SC_CL
当我使用 DialogBox 创建对话框时, 它不会关闭,除非我在我自己的 DLGPROC 函数中处理 WM_CLOSE 并调用 EndDialog。 我知道这是设计使然,但我很感兴趣为什么选择 WM
我创建了简单的 handler inside my QApplication : bool QtMyApplication::winEventFilter ( MSG * msg, long * re
我有一个基于对话框的 MFC 应用程序,它需要停止 Windows Wifi 服务才能正常运行,但我想在我的应用程序退出时再次启用它。 所以我想我应该将重启服务的代码放在主对话框类的析构函数中。 现在
我正在调用 HtmlHelpA winapi 方法来显示我的应用程序的 .chm。此方法立即返回一个 HWND,并且帮助窗口显示为一个单独的窗口。 除了窗口,我还为这个 hwnd 设置了一个计时器。我
尝试在 Windows 7 的任务栏缩略图中使用关闭按钮关闭窗口时尝试设置“你想保存吗”对话框(启用 aero peek)。 在处理 WM_CLOSE 时使用 MessageBox() 不起作用。 M
我们有一个遗留的 C Windows 应用程序,它在发生致命连接错误时通过 MessageBox 调用弹出一个模式窗口。我们的网络工程师可能同时运行其中的许多应用程序。有时,网络故障会导致这些应用程序
我是一名优秀的程序员,十分优秀!