【发布时间】:2012-11-10 21:42:09
【问题描述】:
晚上好。 我理解这个问题可能看起来有点奇怪,所以让我稍微解释一下我的问题:我正在从应用程序构建一个 Windows,它能够打开多个子窗体,每个子窗体都包含一个加载 Flash 动画的 WebBrowser 组件。
现在,我需要模拟对给定打开表单的点击,而不是显示在其他表单之上。为了模拟点击,我使用了与 https://stackoverflow.com/a/11161632/533599 非常相似的代码:我必须实现 2 处更改
- 我必须停止“Internet Explorer_Server”,因为我没有 在句柄链中有一个“MacromediaFlashPlayerActiveX”
- 对于 点击开火,我要“让它加倍”,也就是鼠标向下,向上, 向下,向上。
代码运行良好,点击被触发,但每次触发时,目标表单都会获得焦点并弹出在他所有兄弟姐妹的顶部(但停留在我打开的所有其他窗口的后面)。有没有办法防止这种行为?
【问题讨论】:
-
嗯,这很正常。就像您使用鼠标单击时发生的情况一样,该单击将窗口带到前台。在 Flash 出现时解决此问题将非常困难,这是一个完全不同的过程来获得点击。最好不要这样做。
-
如果我必须这样做,有什么建议吗?
-
我猜想通过覆盖 WndProc() 来拦截 WM_MOUSEACTIVATE 消息可能会奏效。真的不知道。
-
我设法找到了解决方法,如我的回复中所示...不理想,但它可以完成工作
标签: c#