2018年05月20日
《その391》ウィンドウのサイズ取得
ウィンドウのサイズ取得
ウィンドウのサイズ取得は、特にゲームアプリなどを作成するときに必要になることが多いのではないでしょうか。
ウィンドウのサイズはドラッグで簡単に変更できるので、利用者がどんなウィンドウサイズでアプリを利用するのかを事前に知ることはできません。
例えば、ウィンドウ内をボールが飛び回るような場面では、壁(右端)や床(下端)の位置がわからないと、ボールの跳ね返り位置を決められません。
ウィンドウのサイズを固定する方法もありますが、そのようにはしたくない場合もあると思います。
アプリをスタートしました。
ドラッグしてウィンドウサイズを変更します。ドラッグ中もリアルタイムでサイズが表示されます。
ウィンドウの適当な位置をクリックしてみました。
ドラッグしてウィンドウサイズを変更しています。
以下は、MainPage.xaml.cpp です。
//
// MainPage.xaml.cpp
// MainPage クラスの実装。
//
#include "pch.h"
#include "MainPage.xaml.h"
using namespace App8;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
MainPage::MainPage()
{
InitializeComponent();
}
// Page_SizeChangedイベントハンドラ
void App8::MainPage::
Page_SizeChanged(Platform::Object^ sender,
Windows::UI::Xaml::SizeChangedEventArgs^ e)
{
// 現在のウィンドウサイズを取得します。
auto current_w = Window::Current->Bounds.Width;
auto current_h = Window::Current->Bounds.Height;
box1->Text = current_w.ToString();
box2->Text = current_h.ToString();
}
void App8::MainPage::
Page_PointerPressed(Platform::Object^ sender,
Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
{
auto pt = e->GetCurrentPoint(this);
float x = pt->Position.X;
float y = pt->Position.Y;
box3->Text = ((int)x).ToString();
box4->Text = ((int)y).ToString();
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7678531
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック