gpt4 book ai didi

c++ - WinAPI 中的 Windows 10 用户界面

转载 作者:行者123 更新时间:2023-11-30 05:39:38 24 4
gpt4 key购买 nike

我正在尝试构建一个类似于 Microsoft 最近推出的 UI。特别是那些针对 Windows 10 操作系统的应用程序(la Office 2016)。

目前我使用 WinAPI,但 Windows.h 和 CommCtrl.h 提供的所有控件似乎都是遗留/旧式 UI 元素。我特别在寻找标题栏/菜单/状态栏元素(主客户区将包含 GDI/Direct2D 上下文,因此没有什么特别需要的)。

我发现了一些指向 XAML 的信息,但我认为这不是我想要的。 WPF 似乎是一个更有可能的候选者,但我也不确定情况是否如此。

我希望它是 100% 原生的 (WinAPI/C&C++),但如果绝对没有其他选择,我可以将 C# 用于 UI 并在原生代码中 stub 。

最佳答案

您使用 XAML 和 C++、C# 或 JavaScript 编写 Windows 应用商店(以前称为 Metro)应用。如果您使用 C++,该应用程序是 100% 原生的,但如果您使用 C# 或 JavaScript,当然会使用所需的虚拟机。

您的代码调用的 API 是 WinRT,它看起来像 Silverlight。此外,您的应用程序还可以调用一些(但不是全部)Win32 API,类似于 .NET 应用程序调用 Win32 的方式(例如,通过使用 P/Invoke)。然而,即使您使用 C++ 并因此您的应用程序是 100% 原生的,它仍然像浏览器一样被沙盒化。这意味着它不能做诸如访问整个磁盘或写入注册表中的 HKLM 之类的事情。这是为了安全; Windows 应用商店应用程序需要安全,因此更受限制,就像您从 Apple AppStore 购买的移动应用程序一样。这意味着你不能调用CreateFile .这说:

Minimum supported client Windows XP [desktop apps only]

当 MS 在上面提到“桌面应用程序”时,它们指的是 Win32 应用程序。这不包括 Windows 应用商店应用程序。但这令人困惑,因为在 Win 8/8.1 上,这些 Windows 应用商店应用程序是全屏的,但在 Windows 10 上,它们可以调整大小和重叠,出现在传统 Win32 应用程序(如资源管理器和任务管理器)旁边,并与之混合。因此,即使它们与桌面应用程序出现在同一个桌面上,它们也不是桌面应用程序。

我相信,如果 Windows 应用商店应用还针对 Windows Phone 10、Windows IoT 等,那么它就被称为 Windows 通用应用。

关于c++ - WinAPI 中的 Windows 10 用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com