管理Win32应用程序和QWinMigrate之间的键盘事件

时间:2015-12-15 22:04:53

标签: c++ qt winapi qevent qeventloop

我已经将Qt对话框集成到传统的Win32应用程序中,现在我对如何管理从Qt-> Win32传播的键盘事件感到有点困惑。有没有办法测试Qt是否正在处理'事件(例如,输入到编辑框),并阻止这些事件传播到主机应用程序?

Win32应用程序有自己非常复杂的加速器系统,当使用本机编辑框时,我们通常会手动禁用加速器。我没有能力为Qt对话框执行此操作,因为它是多个应用程序中的共享小部件。

目前我在对话框上禁用主机加速器作为一个整体获得焦点,但是有可能告诉Qt防止编辑盒中的kbd事件传播吗?理想情况下,不修改QtDialogs代码(尽管我可以在必要时这样做吗?)

1 个答案:

答案 0 :(得分:1)

  

有没有办法测试Qt是否正在处理'事件(例如,输入到编辑框)

如果您还没有使用它,您一定要查看Spy++(包含在Visual Studio中),它可以让您跟踪每条消息。

我不熟悉Qt,但是如果你想捕获Win32中的所有消息,你可以使用GetMessage(),例如:

vapply(iris, is.numeric, NA)