在qt中调用windows api除了引入头文件还要引入lib文件比如调用FindWindow,只引入头文件(windows.h)则编译时会报错需要在.h或.cpp文件中加上#pragma comment(lib,"user32")
基于
Qt
5.8百度了半天都没找到有用的。这边自己记录下吧新建QWidget工程。在界面里放置一个PushButton 在clicked信号里代码如下void myWidget::on_pushButton_clicked()
::MessageBoxW(NULL,TEXT("DFD"),TEXT("DSSD"),MB_OK);
::MessageBeep(0xFFFFFFF...
利用QProcess类,启动第三方程序;
利用
Windows
API
函数FindWindow 获取窗口的句柄;
利用QWindow类找到句柄所对应的窗口 QWindow *m_window=QWindow::fromWinId(wid);
调用
QWindow的CreateWindowContainter函数创建窗口的Widget,
可以参考:https://www.cnblogs.com/gaox
首先说明,网上找了很多代码资源,运用在
QT
项目
中
都不能找到该窗口的句柄,即FindWindow返回的是0,后面在某讨论里面看见VS的编码为unicode,才解决了这个问题。
编译环境为
QT
5.15.2 + vs2019 32bit,其他环境没试过。
1、在pro文件里面添加:
win32{
LIBS += -luser32
2、源文件添加:
#include <
Windows
.h>
FindWindow头文件为WinUser.h,故我还添加了#include <WinU.