我有一个WinOS窗口的句柄,例如。 Qt.I中的 Internet Explorer 窗口以这种方式完成:m_hwndUnderCursor= WindowFromPoint(curPoint);
如何成功将{event>成功安装到 m_hwndUnderCursor ,以便我可以在没有 HOOK 的情况下在Qt中观看 m_hwndUnderCursor 技术
我知道因为 m_hwndUnderCursor 指向WinOS窗口的指针所以QWidget :: find(m_hwndUnderCursor)总是返回NULL。有没有办法让它成功?
答案 0 :(得分:3)
快速回答是:你不能这样做。
更详细的答案:
QObject::installEventFilter()
的工作原理基于Qt的事件引擎(事件循环,事件传播等)。这是Qt的内部资源,在Qt应用程序之外的其他窗口中无法使用。它仅适用于您从{。}}调用的同一应用程序的一部分的窗口。
出于类似的原因,如果您尝试查找非Qt窗口,installEventFilter()
将永远不会在结果中显示QWidget::find()
。它仅适用于在Qt应用程序中创建的窗口。另请参阅:Can QWidget::find find widgets from a different process?
您必须使用本机Windows API处理它。