UE4 获取主窗口HWND和调用WINAPI函数
很多文章介绍获取UE4主窗口都是通过GetActiveWindow或者FindWindow等方法,这种方法不是很方便,也不准确。
可以通过UEngine的Viewport获取NativeWindow来得到UE4的主窗口句柄,通过句柄可以调用WINAPI函数来修改窗口风格等。
调用Windows窗口函数需要包含以下头文件和编译模块。
引用头文件
# include <windows/WindowsWindow.h>
#include "Windows/AllowWindowsPlatformTypes.h"
# include <windows.h>
# include <shellapi.h>
#include "Windows/HideWindowsPlatformTypes.h"
编译模块
添加"Slate", “SlateCore”, “ApplicationCore”
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Networking", "XmlParser", "Sockets", "CinematicCamera", "Slate", "SlateCore", "ApplicationCore" });
获取HWND
#if PLATFORM_WINDOWSTSharedPtr<FGenericWindow> NativeWindow = GEngine->GameViewport->GetWindow()->GetNativeWindow();auto Window = static_cast<FWindowsWindow*>(NativeWindow.Get());auto hWnd = Window->GetHWnd();
#endif // #if PLATFORM_WINDOWS
调用WINAPI函数
#if PLATFORM_WINDOWSTSharedPtr<FGenericWindow> NativeWindow = GEngine->GameViewport->GetWindow()->GetNativeWindow();auto Window = static_cast<FWindowsWindow*>(NativeWindow.Get());auto hWnd = Window->GetHWnd();SetWindowLongPtr(hWnd, GWL_STYLE, (LONG_PTR)style);SetWindowLongPtr(hWnd, GWL_EXSTYLE, (LONG_PTR)exstyle);
#endif // #if PLATFORM_WINDOWS
显示隐藏窗口
可以直接调用UEngine接口函数
GEngine->GameViewport->GetWindow()->ShowWindow();GEngine->GameViewport->GetWindow()->HideWindow();
UE4 获取主窗口HWND和调用WINAPI函数相关推荐
- 进程相关(进程Id获取主窗口)
1.知道进程handle 获取进程名称. PROCESS_INFORMATION* processInfo =(PROCESS_INFORMATION*)pid(); HANDLE hProce ...
- QT 如何获取主窗口的指针
有时候需要获取主窗口指针,从而通过指针来使用其方法,详见代码: QMainWindow* getMainWindow() {foreach(QWidget *w, qApp->topLevelW ...
- Qt之如何获取主窗口的指针
QMainWindow* getMainWindow() {foreach (QWidget *w, qApp->topLevelWidgets())if (QMainWindow* mainW ...
- python调用窗口_如何调用一个函数并在另一个窗口中打开?
我用的是IDLE,但这应该足够让球滚动了.IDLE是在Windows上下载Python时随Python一起安装的IDE.您可以通过按Windows键并搜索空闲来打开它.在 这段代码很简单,但是它应该能 ...
- python 如何做密码对话框_Python GUI教程(八):在主窗口中调用对话框
本篇将会介绍: 使用qt设计师创建两个窗口 转换设计师UI代码为Python代码 从主窗口中调用对话框窗口 一.创建两个窗口 根据本篇的最终目标--在主窗口中调用对话窗口,我们先使用qt设计师创建两个 ...
- QT应用程序-获取Application-获取主窗口指针-QT内嵌浏览器-QT菜单动作
在编写QT程序时,有时需要获取主窗口程序指针和主窗口指针,方便控制界面,编写相应的逻辑,而QT则提供了类似的功能. 1.获取应用程序 qApp 宏就可以获取 QApplication 实例,只要使用了 ...
- 通过进程ID获得该进程主窗口的句柄
一个进程可以拥有很多主窗口,也可以不拥有主窗口,所以这样的函数是不存在的,所幸的是,相反的函数是有的.所以我们可以调用EnumWindows来判断所有的窗口是否属于这个进程. typedef stru ...
- 《快速掌握PyQt5》第二十三章 主窗口QMainWindow
第二十三章 主窗口QMainWindow 23.1 记事本应用 23.3 程序启动画面QSplashScreen 23.2 小结 <快速掌握PyQt5>专栏已整理成书出版,书名为<P ...
- WPF中任务栏只显示主窗口
我们在用WPF开发的时候,常常会遇到在主窗口打开的情况下,去显示子窗口,而此时任务栏同时显示主窗口与子窗口.这样看起来很不美观.所以在弹出子窗口之前,设置它的几个相应属性,便不会出现这种问题了. 1 ...
最新文章
- 【BZOJ2115】[Wc2011] Xor 高斯消元求线性基+DFS
- Mac OS包管理器Homebrew
- 【CyberSecurityLearning 24】kali中间人攻击
- WebService开发
- 关于__attribute__ ((packed))
- 位图bitmap应用
- 转载! 一图读懂 SignalR
- java内存泄漏与内存溢出
- Spring WebSocket入门(一) 转载
- @Autowired与@Resource用法
- WIN7下 VS2008 无法调试ASP.NET
- JAVA实训心得体会(精选4篇)
- 2005年linux手机系统,2005年智能手机点评之其他操作系统篇
- 圣思园的随堂视频发布了
- 实用常识 | 写论文时如何引用插入脚注 / 如何自定义脚注符号 / 如何将多个脚注合并在一起
- 青岛市中小学学籍系统服务器,全国各省市中小学学籍网登录入口
- 【CPU设计实战】简单流水线CPU设计
- 不二少年在路上之兄弟连完美落地
- Thinkpad E470重装WIN7系统后,重启进入boot menu的问题
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
热门文章
- 智能摄像头在智能家居应用中的利弊分析
- html按住语音如何看前面内容,单音语音内容.html
- 牛客小白月赛B JAVA大数或String
- 习题3-5 三角形判断
- str与__str__、repr与__repr__的关系
- Kubernetes Deployment控制器(二十)
- java 语言是跨平台的吗_java语言的跨平台特点是由什么保证的?有什么用吗?
- 互联网云厂商,打响能源TO B争夺战
- 阴阳师召唤式神app(安卓)
- 百度2015春季实习生招聘附加题