QWidget嵌入外部进程 基本控件(三十)
程序员文章站
2022-05-28 11:35:25
...
一、效果图
二、代码
#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.注意库文件的引入