3

我有一个 Windows 窗体应用程序,它执行一个简单的任务:用户在主窗体中选择一个视频,应用程序会弹出一个新窗体,其中 Shockwave Flash 对象再现它。

我现在想做的是当用户滚动鼠标滚轮时在电影时间轴中移动。问题是,Flash 对象一弹出就从表单中窃取焦点,并且它不支持鼠标滚轮事件。

有没有办法做到这一点,除了挂钩 MouseWheel 事件并在弹出窗口具有焦点时将其重定向到应用程序?

4

1 回答 1

2

Flash 显示的窗口属于不同的进程。这使得处理消息变得困难,您至少需要一个低级鼠标钩子才能在鼠标消息消失到另一个进程之前查看它。

样板代码可在此处获得。请注意,它有一个错误会阻止它在 .NET 4 及更高版本上运行,请参阅此答案以了解解决方法。

于 2012-10-20T18:39:44.140 回答