yah*_*osh
6
c++
user-interface
winapi
c++-winrt
winui
我将尝试尽可能简洁地总结我的问题:
- 我有一个遗留的 C++ 项目,它使用 WinAPI 创建和管理 UI 元素。我想用一个支持 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 应用程序的上下文中完成上述操作,是否同样可行?