QWidget中嵌入win32 window(使用QWindow和QWidget::createWindowContainer)

主要用到QWindow::fromWinId和QWidget::createWindowContainer这两个函数

QWindow::fromWinId用来创建一个win32窗口的代理 
QWidget::createWindowContainer用来把窗口封装为一个QWidget控件

示例代码

    HWND hwnd = ::FindWindow(L"CEFWebkitBrowserWnd", NULL);
    QWindow* native_wnd  = QWindow::fromWinId((WId)hwnd);
    QWidget* native_wdgt = QWidget::createWindowContainer(native_wnd);

    centralWidget ->addSubWindow(native_wdgt);
    native_wdgt->setMinimumSize(600,400);

图示

参考链接

http://stackoverflow.com/questions/28786172/qt5-qwidgetcreate-with-win32-hwnd-embedding-not-longer-working-after-port-fr

http://blog.csdn.net/x356982611/article/details/52512533

原文地址:https://www.cnblogs.com/findumars/p/4830214.html