【发布时间】:2010-11-21 15:14:34
【问题描述】:
我正在为 IE 编写一个插件。我需要在外部单击时关闭模式对话框。
到目前为止,我已经使用 WM_NCACTIVATE 来接收这些通知,但似乎在 Windows 7 (IE8) 上我没有收到此消息(我以低完整性运行,我已经使用 spy++ 对其进行了验证;它似乎当我以高完整性运行时它确实有效 - 奇怪的东西)。
我尝试将常规鼠标挂钩用于 DeskBand UI 线程。我确实得到了所有的鼠标事件,除了来自对话框之外的事件。
所以我转而使用全局低级鼠标挂钩 (WH_MOUSE_LL)。 一切正常,但由于一些非常奇怪的原因,当我单击任何一个标题栏按钮时,我会出现 5-10 秒的冻结。
经过一些在线研究,我意识到这是一个常见问题,但我没有找到解决方案。有些人说这是性能问题,但即使我的钩子函数只调用“CallNextHook”,它仍然会发生。
关于如何修复它的任何想法或在外部点击时关闭模式对话框的替代想法?
【问题讨论】:
-
我认为甚至尝试覆盖标准 Windows 行为的基本位(例如模态窗口是什么的想法)是一个非常可怕的想法。我也怀疑这就是为什么你发现它很难做到。这个问题只会让我想知道为什么有人要这样做,而我能想出的答案闻起来并不好。
-
我同意;模态对话框的重点是模态的。如果您不想要模态对话框,请务必将对话框设为模态。
标签: c++ windows internet-explorer windows-7 hook