Windows 10 UI in WinAPI



我正在尝试构建一个类似于最近微软推出的UI。特别是那些针对Windows 10操作系统(和Office 2016一样)的攻击。

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

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

我希望这是100%原生的(WinAPI/C& c++),但如果绝对没有其他选择,我可以使用c#作为UI和存根在本地代码

你使用XAML和c++, c#或JavaScript来编写Windows Store(以前的Metro)应用程序。如果你使用c++,该应用程序是100%原生的,但如果你使用c#或JavaScript,当然需要使用虚拟机。

你的代码调用的API是WinRT,看起来像Silverlight。此外,你的应用程序也可以调用一些,但不是全部,Win32 API类似于。net应用程序如何调用Win32(例如,通过使用P/Invoke)。然而,即使你使用c++,因此你的应用程序是100%原生的,它仍然像浏览器一样被沙盒化。这意味着它不能访问整个磁盘或写入注册表中的HKLM。这是为了安全;Windows Store应用需要安全,因此更受限制,就像你从苹果AppStore购买的手机应用一样。这意味着你不能调用例如CreateFile。这表示:

最小支持的客户端Windows XP[仅限桌面应用]

当微软上面提到"桌面应用"时,他们指的是Win32应用。这不包括Windows Store应用程序。但这很令人困惑,因为在Win 8/8.1中,这些Windows Store应用程序是全屏的,但在Windows 10中,它们会重新调整大小并重叠,出现在传统的Win32应用程序(如资源管理器和任务管理器)旁边,并混合在一起。所以即使它们和桌面应用出现在同一个桌面,它们也不是桌面应用。

我相信如果一个Windows Store应用也针对Windows Phone 10, Windows IoT等,那么它就被称为Windows Universal应用。

最新更新