将Unreal4打包后的工程嵌入到Qt或者桌面中
#include "widget.h"
#include "ui_widget.h"
#include "windows.h"
#include <QWindow>
#include <QProcess>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
} Widget::~Widget()
{
delete ui;
} //网上找到的把窗体嵌入桌面的函数
static BOOL enumUserWindowsCB(HWND hwnd,LPARAM lParam)
{
long wflags = GetWindowLong(hwnd, GWL_STYLE);
if(!(wflags & WS_VISIBLE)) return TRUE;
HWND sndWnd;
if( !(sndWnd=FindWindowEx(hwnd, NULL, L"SHELLDLL_DefView", NULL)) ) return TRUE;
HWND targetWnd;
if( !(targetWnd=FindWindowEx(sndWnd, NULL, L"SysListView32", L"FolderView")) ) return TRUE; HWND* resultHwnd = (HWND*)lParam;
*resultHwnd = targetWnd; return FALSE;
}
//网上找到的把窗体嵌入桌面的函数
HWND findDesktopIconWnd()
{
HWND resultHwnd = NULL;
EnumWindows((WNDENUMPROC)enumUserWindowsCB, (LPARAM)&resultHwnd);
return resultHwnd;
} void Widget::on_pushButton_clicked()
{
HWND hwnWindow=FindWindow(NULL,L"DemoGame");
HWND desktopHwnd=findDesktopIconWnd(); QWindow *window=QWindow::fromWinId((WId)hwnWindow); // //将窗口嵌入到桌面上
// LONG styleValue=GetWindowLong(hwnWindow,GWL_STYLE);
// styleValue&=~WS_CAPTION;
// SetWindowLong(hwnWindow,GWL_STYLE,styleValue);
// SetParent(hwnWindow,desktopHwnd); // //嵌入Qt窗口
// SetParent(hwnWindow,(HWND)QWidget::winId());
// window->showFullScreen(); //嵌入Qt窗口,需要设置焦点让Ue4接受按键事件
QWidget *windowWidget=QWidget::createWindowContainer(window);
ui->verticalLayout->addWidget(windowWidget);
windowWidget->setFocusPolicy(Qt::StrongFocus);
windowWidget->setFocus();
windowWidget->grabKeyboard();
windowWidget->grabMouse();
this->setFocusPolicy(Qt::ClickFocus); }
中间2个函数是用于查找桌面句柄的,另外2块注释的地方分别是,将打包工程嵌入到桌面、嵌入到Qt窗口的代码。
嵌入到Qt窗口有2种思路:1、直接使用WinAPI将窗口直接嵌入,缺点:你需要自己编写移动、Layout之类的调整代码。
2、使用createWindowContainer,将窗口作为QWidget嵌入,缺点:默认Widget会屏蔽掉按键事件,所以需要让其取得,也就是说需要完善好这一方面的逻辑。
本文有了更新 :https://www.cnblogs.com/blueroses/p/9151094.html
将Unreal4打包后的工程嵌入到Qt或者桌面中的更多相关文章
- 对《将Unreal4打包后的工程嵌入到Qt或者桌面中》一文的补充
在上一文中本人尝试将Ue4嵌入到Qt中,但依然有一些问题没有去尝试解决.今天因为帮助知乎专栏作者@大钊的关系,顺便进行补完. 2018.7.18更新: 正好在参加杭州UnrealCircle的时候见到 ...
- 当碰到需要调试打包后的js
在react中经常开发碰到不能热更中进行调试的,如IE之类的 这个时候我们就需要打包才能运行看到效果, 但是往往每次打包都需要很长的时间: 这个时候我们就可以直接找到打包后的文件,直接在改文件中修改: ...
- ActiveX控件打包、签名、嵌入详解
ActiveX控件打包.签名.嵌入详解 前言 在我们的一个项目中,使用到了大华网络监控摄像头枪机,网络上下载了其ActiveX插件,但是发现其所提供的类库没有打包处理.这就导致我们每次给用户安装的时候 ...
- Xcode: Run Script 的运用, 使build打包后自动+1
背景: 每次打包都要build+1处理,比较麻烦,使用 Run Script 的运用使build打包后自动+1 0. 使用xcode 添加run Script 然后就可以添加Run Script了 1 ...
- vue打包后js和css、图片不显示,引用的字体找不到问题
vue打包后js和css.图片不显示,引用的字体找不到问题:图片一般都是背景图片. 一.vue打包出现js和css不显示问题: 1.不使用mode:'history' 2.使用mode:'histor ...
- Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法
原文:Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法 前几个月使用Advanced Installer 打包了一堆安装包,其中有使用默认主题的,也有根据 ...
- 提高首屏页面加载速度,解决vue-cli打包后单个文件过大的问题
本教程是针对vue-cli3以上的版本,其实原理都大同小异,这个demo为vue-cli直接创建的项目,并在main.js中引入了echart.element-ui.lodash 首先看demo打包后 ...
- IDEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在问题处理
公司新项目需使用java技术栈,便使用IDEA搭建了一个多SpringBoot项目的聚合工程,因为初次使用,遇到了很多问题,maven打包时各种报错,在网上查了好多终于解决了,为巩固记忆,特作此记录. ...
- 简要分析webpack打包后代码
开门见山 1.打包单一模块 webpack.config.js module.exports = { entry:"./chunk1.js", output: { path: __ ...
随机推荐
- JDBC值事务
事务的四大特性: 原子性, 一致性(比如说A给B转账,A转了之后B的账户增加了,两个都完成才叫一致性),隔离性(A给B转账,A给C转账,AB和AC并发是无关的),永久性(转账之后 不可能复原,就是说不 ...
- virut详细分析
Virut分析 0x00.综合描述 virut样本的执行过程大体可以分为六步:第一步,解密数据代码,并调用解密后的代码:第二步,通过互斥体判断系统环境,解密病毒代码并执行:第三步,创建内存映射文件,执 ...
- apache极简配置虚拟机
在apache的httpd.conf文件最后添加: Listen 81<VirtualHost *:81> DocumentRoot E:/CM/wx_shop/ecshop</Vi ...
- TBitmapSurface.StretchFrom
procedure TBitmapSurface.StretchFrom(const Source: TBitmapSurface; const NewWidth, NewHeight: Intege ...
- Js计算当前日,当前周开始结束时间,当前月份,当前年份
<script type="text/javascript"> //日期加上天数后的新日期. function GetDateStr(AddDayCount) { va ...
- Mysql学习笔记(附一)
关于外键约束关系下修改或者删除表的方法: http://wenku.baidu.com/link?url=RRaI160kvsdf7ibMLqxN815RvStSyenz_-ig1ONfpRfpfFp ...
- 重建索引提高SQL Server性能
大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据.索引可以分为簇索引和非簇索引,簇索引通过重排表中的数 ...
- pureftp 服务
没啥图,不喜勿喷---_- ftp(file transfer protocol)--文件传输协议 (a)官网:www.pureftpd.org (b)原理 让用户连接上一个远程计算机(运行FTP ...
- LeetCode 204 Count Primes
Problem: Count the number of prime numbers less than a non-negative number, n. Summary: 判断小于某非负数n的质数 ...
- JavaCV配置
下载javacv-1.2-bin.zip https://github.com/bytedeco/javacv 解压 在Eclipse项目 Referenced Libraries 中 Add Ext ...