当前位置: 代码迷 >> QT开发 >> 关于Qt5.1 怎么实现HWND转化成QWidget对象
  详细解决方案

关于Qt5.1 怎么实现HWND转化成QWidget对象

热度:209   发布时间:2016-04-25 03:06:56.0
关于Qt5.1 如何实现HWND转化成QWidget对象。
我现在有个现存窗口A,想在A窗口新建子窗口B,但是我现在只知道窗口A的HWND句柄,想把HWND转化成QWidget对象。
在网上搜了一下,可以通过 QWidget::find()来解决,但是总是获得不成功。代码如下:
        AIErr error = kNoErr;
AIPanelPlatformWindow hDlg = NULL;    // hDlg 就是HWND句柄
error = sAIPanel->GetPlatformWindow(fPanel, hDlg);
QWidget* pParentWidget = QWidget::find((WId)hDlg);

pParentWidget 始终为空,不知道如何解决。
请大神帮忙解决或提出新的方法。
谢谢
------解决思路----------------------
直接新建一个QWidget然后 在Windows 平台 WId 获得的就是 句柄。然后找到你的 目标窗口,如你所说,他有 HWND

然后调用 Windows API SetParent,当然这个只是可用。你可能还需要后续处理 Focus 之类的东西才能比较完善。
------解决思路----------------------
首先:HWND 转化不成 QWidget

其次:QWidget::find()  只是在当前程序内根据HWND找出与之对象的QWidget