c++ - 将 WinUI 与 C++ 一起使用的指南
问题描述
我会尽量简明扼要地总结我的问题:
- 我有一个使用 WinAPI 创建和管理 UI 元素的遗留 C++ 项目。我想用一个支持 OOP 并具有某种视觉设计器的更现代的框架来替换它。我打算通过用新框架逐步替换旧的基于 WinAPI 的代码来实现这一点(例如,我可以引入一个使用新框架的新弹出窗口,而 UI 的其余部分仍将使用旧的窗口过程等等)
- 我最初的计划是使用 Qt,因为它允许我方便地将 UI 代码包装在对象中,我可以轻松地实例化和管理这些对象。它还有一个设计器,可以让我创建自定义 UI 元素(包括自动布局管理)、一个 Visual Studio 扩展,总的来说,过去的经验告诉我 Qt 非常适合我的目的。但是,这里的用户警告我,它与 WinAPI 的配合不好,我基本上必须从头开始重新构建应用程序。
- 有人建议我改用 WinUI,即 XAML 与 C++/WinRT 相结合,因为它们应该提供与我上面描述的相同的灵活性。我成功地复制了“在 Win32 应用程序中托管 UWP 控件”指南的结果,但除此之外似乎几乎没有有用的材料。
- 为了获得明确的答案,Microsoft 文档很难导航。目前,上面的指南让我相信我仍然会坚持使用 WinAPI,因为似乎没有一种明显的方法可以将 UI 代码包装在对象中,最好是那些我可以从现有基础派生的对象类(例如某种基本的 Window 对象)
我有以下环境可以使用:
- MSVC 支持的最新 C++ 功能级别
- 视觉工作室 2019
- Windows 10(即我不介意我不再与 Windows 操作系统兼容)
我需要的:
关于是否可以以类似于使用 C++ 在 Qt 中设计 UI 代码的方式使用 XAML 和 C++/WinRT 的明确答案。不需要精确校验,我只是想消除使用 WinAPI 管理 UI 的麻烦,我实际上必须“手动”完成所有操作
如果上述情况属实,那么我在哪里可以找到工作流程各个步骤的指南?如何制作“窗口对象”,如何设计带有布局管理的窗口,如何处理 UI 事件等?
如果需要在我尝试升级的旧版 WinAPI 应用程序的上下文中完成上述操作,是否同样可能?
解决方案
推荐阅读
- tcl - 如何获得我想要的输出?
- c# - 有没有办法让建议的操作成为 Botframework v4 上的编号列表?
- julia - 如何通过第 3 个维度合并两个 4 维度数组
- python-3.x - 如何在用户输入之前多线程等待用户输入并做其他事情
- java - 如果使用 @Bean 标签创建了一个 bean,那么我们可以创建两个 bean。每个 applicatonContext 是如何单例的
- vb.net - 在列表框中双击操作时如何修复“从字符串“Num1”到类型“整数”的转换无效”
- excel - 我想从网页中提取数据,但最后我无法在工作表中写入数据。数据是表格形式(多行,列)?
- javascript - 在 JS 中查找路线的最快方法是什么?
- c# - 在 WPF ListView 中动态创建组
- angular - 角度路由器导航问题