我已经将Qt对话框集成到传统的Win32应用程序中,现在我对如何管理从Qt-> Win32传播的键盘事件感到有点困惑。有没有办法测试Qt是否正在处理'事件(例如,输入到编辑框),并阻止这些事件传播到主机应用程序?
Win32应用程序有自己非常复杂的加速器系统,当使用本机编辑框时,我们通常会手动禁用加速器。我没有能力为Qt对话框执行此操作,因为它是多个应用程序中的共享小部件。
目前我在对话框上禁用主机加速器作为一个整体获得焦点,但是有可能告诉Qt防止编辑盒中的kbd事件传播吗?理想情况下,不修改QtDialogs代码(尽管我可以在必要时这样做吗?)
答案 0 :(得分:1)
有没有办法测试Qt是否正在处理'事件(例如,输入到编辑框)
如果您还没有使用它,您一定要查看Spy++(包含在Visual Studio中),它可以让您跟踪每条消息。
我不熟悉Qt,但是如果你想捕获Win32中的所有消息,你可以使用GetMessage()
,例如:
vapply(iris, is.numeric, NA)