我有一个执行简单任务的Windows窗体应用程序:用户选择主窗体中的视频,然后应用程序弹出一个带有Shockwave Flash对象的新窗体,再现它。
我现在要做的是在用户滚动鼠标滚轮时移动电影时间轴。问题是,Flash对象在弹出时立即从表单中窃取焦点,并且它不支持鼠标滚轮事件。
有没有办法做到这一点,除了挂钩MouseWheel事件并在弹出窗口有焦点时将其重定向到应用程序?
答案 0 :(得分:2)
Flash显示的窗口由不同的进程拥有。这使得消息变得困难,你至少需要一个低级别的鼠标钩子才能看到鼠标消息,然后再消失到另一个进程中。
样板代码为available here。请注意它有一个阻止它在.NET 4及更高版本上运行的错误,请参阅this answer了解解决方法。