要在C++中创建一个Metro风格的应用,可以使用Windows Runtime(WinRT)API来实现。以下是一个简单的示例,使用Windows.UI.Xaml命名空间中的控件和样式来创建一个Metro风格的界面。
#include <windows.h>#include <winrt/Windows.Foundation.h>#include <winrt/Windows.UI.Xaml.h>#include <winrt/Windows.UI.Xaml.Controls.h>#include <winrt/Windows.UI.Xaml.Hosting.h>#include <winrt/Windows.UI.Xaml.Media.h>#include <winrt/Windows.UI.Xaml.Media.Imaging.h>using namespace winrt;using namespace Windows::Foundation;using namespace Windows::UI::Xaml;using namespace Windows::UI::Xaml::Controls;using namespace Windows::UI::Xaml::Hosting;using namespace Windows::UI::Xaml::Media;using namespace Windows::UI::Xaml::Media::Imaging;int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow){init_apartment();XamlCoreApplication::Initialize();// 创建一个窗口auto window = Window();window.Width(400);window.Height(300);window.Title(L"My First Metro App");// 创建一个Grid作为窗口的内容auto grid = Grid();window.Content(grid);// 创建一个TextBlock控件auto textBlock = TextBlock();textBlock.Text(L"Hello, Metro!");textBlock.FontSize(24);textBlock.HorizontalAlignment(HorizontalAlignment::Center);textBlock.VerticalAlignment(VerticalAlignment::Center);// 创建一个Button控件auto button = Button();button.Content(box_value(L"Click me!"));button.HorizontalAlignment(HorizontalAlignment::Center);button.VerticalAlignment(VerticalAlignment::Bottom);// 添加控件到Grid中grid.Children().Append(textBlock);grid.Children().Append(button);// 显示窗口auto windowInterop = window.as<IWindowNative>();HWND hwnd{};windowInterop->get_WindowHandle(&hwnd);ShowWindow(hwnd, nCmdShow);XamlCoreApplication::Run();return 0;}这个例子创建了一个简单的窗口,其中包含一个文本块和一个按钮。你可以根据自己的需求添加更多的控件和样式,并使用WinRT API调整界面的外观和行为。为了编译运行这段代码,你需要使用Windows SDK和C++编译器。

