我会尽量简明扼要地总结我的问题:
- 我有一个使用 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 应用程序的上下文中完成上述操作,是否同样可能?