IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> UE-c++ 调用Windows文件管理器 -> 正文阅读

[C++知识库]UE-c++ 调用Windows文件管理器

一. 起因

学到图像处理的课程时,需要做个软件。
而对于处理的图像,我们希望用户可以提供自定义的图片,所以有这个需求。

二. 解决(注意,是UE框架下的C++)

!!!需要在项目.Build.cs添加 “DesktopPlatform”,“ApplicationCore” 两个模块

Build失败大部分是因为模块加载问题,不是你include头文件就行了,具体原因请了解UE的模块机制。

代码如下

#include "DesktopPlatformModule.h"
#include "Windows/WindowsWindow.h"
TArray<FString> UPhBlueprintFunctionLibrary::OpenImageFile()
{
	//选中文件路径
	TArray<FString> Path;
	//过滤文件类型
	const FString FileType = TEXT("图像文件 (*bmp;*.jpg;*.jpeg;*.png)|*bmp;*.jpg;*.jpeg;*.png");
	//文件选择窗口默认路径
	const FString DefaultPath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir());
	//获得支持的平台
	IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
	//获得句柄
	const TSharedPtr<FGenericWindow> NativeWindow = GEngine->GameViewport->GetWindow()->GetNativeWindow();
	const auto Window = static_cast<FWindowsWindow*>(NativeWindow.Get());
	const auto Hwnd = Window->GetHWnd();
	//打开窗口
	DesktopPlatform->OpenFileDialog(Hwnd, TEXT("导入图片"), DefaultPath, TEXT(""), *FileType, EFileDialogFlags::Multiple, Path);
	return Path ;
}

UPhBlueprintFunctionLibrary 自定义的工具类。
FileType |前是显示给用户的文本,|后是需要的文件类型。
DesktopPlatform 不同平台。
NativeWindow 当前窗口。
EFileDialogFlags 控制单选/多选文件。
Path 此次窗口选择的所有文件的路径。

效果如图
在这里插入图片描述

三. 感想

调用文件夹 真是非常非常重要的一件事,不是因为实现它的难易程度,
而是它真的是 我写软件的灵魂所在,它意味着我的程序可以使用用户提供的文件,
不再是单个单个字符的输入,再默默的输出。
这在以前是不能想象的,它的出现,使得我就像井底之蛙看到了大海,萤火瞥见了皓月。
是那种,整日的迷茫,到一瞬间的豁然开朗。
自定义,实在是一件美妙的事情!!!
可惜同学不能怎么get到我的点…
emmm
下篇再说怎么使用得到的文件路径读取图片数据~~~

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 15:59:31  更:2022-04-06 16:02:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:08:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码