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

posted @ 2015-09-22 20:18  findumars  Views(5762)  Comments(1Edit  收藏  举报