欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QWidget嵌入外部进程 基本控件(三十)

程序员文章站 2022-05-28 11:35:25
...

一、效果图
QWidget嵌入外部进程 基本控件(三十)
二、代码

#include "widget.h"
#include "ui_widget.h"
#include <QWindow>
#include <Windows.h>
#include <WinUser.h>
#pragma comment(lib, "user32.lib")
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QString cmd="C:/Windows/system32/calc.exe";
    STARTUPINFO si={sizeof(si)};
    PROCESS_INFORMATION pi;
    si.dwFlags=STARTF_USESHOWWINDOW;
    si.wShowWindow=true;

    bool bRet=CreateProcess(
                NULL,
                (LPWSTR)cmd.toStdWString().c_str(),
                NULL,
                NULL,
                FALSE,
                CREATE_NEW_CONSOLE,
                NULL,
                NULL,&si,&pi);

    Sleep(500);

    WId wid = (WId)FindWindow(L"CalcFrame",NULL);
    QWindow *m_window;
    m_window = QWindow::fromWinId(wid);

    QWidget *m_widget;
    m_widget = QWidget::createWindowContainer(m_window,this);
    m_widget->setMinimumSize(210,300);
    m_widget->move(20,20);
}

Widget::~Widget()
{
    delete ui;
}


三、注意点
1.注意头文件的引入
2.注意库文件的引入

相关标签: # Qt-基本控件