C++で最初のMetroスタイルアプリを作成する
MetroスタイルのアプリをC++で作成するには、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++コンパイラを使用する必要があります。