Mouse Border Click

Border の中でクリックされた回数をカウントします。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. Store Application の C++ Windows プロジェクトを作成します。
    Windows のプラットホームや Visual Studio のバージョンが変わると何かと勝手が違うようです。
    1. Visual Studio で UWP(Universal Windows Platform) のプロジェクトを作成します。
      プロジェクトの作成は XAML で図形を描画 を参照して下さい。
    2. MainPage.xaml に border と TextBox を貼り付けます。
          <Grid>
              <Border x:Name="border" Background="LightBlue" HorizontalAlignment="Left"
                  Height="400" Margin="37,71,0,0" VerticalAlignment="Top" Width="600">
                  <TextBox x:Name="textBox" Text="TextBlock" TextWrapping="Wrap"
                      HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
              </Border>
          </Grid>
      
    3. MainPage.xaml.cpp を修正して、マウスのクリックを検出します。
      border 内でマウスをクリックすると OnPointerPressed が呼び出されます。
      MainPage::MainPage()
      {
          InitializeComponent();
          PointerPressed += ref new PointerEventHandler(this, &MainPage::OnPointerPressed);
      }
      
    4. OnPointerPressed() では「左・右」のクリックをカウントして TextBox に印字します。
      void App1::MainPage::OnPointerPressed(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e)
      {
          String^ str;
          Windows::UI::Xaml::Input::Pointer^ ptr = e->Pointer;
          if (ptr->PointerDeviceType == Windows::Devices::Input::PointerDeviceType::Mouse)
          {   Windows::UI::Input::PointerPoint^ point = e->GetCurrentPoint(this);
              if (point->Properties->IsLeftButtonPressed)     {   Cnt_L++;  }
              if (point->Properties->IsRightButtonPressed)    {   Cnt_R++;  }
              str = "Left:" + Cnt_L.ToString() + "  Right:" + Cnt_R.ToString();
              textBox->Text = str;
          }
      }
      
    5. MainPage.xaml.h で関数の宣言とカウント領域を定義して下さい。
          public ref class MainPage sealed
          {
          public:
              MainPage();
              void OnPointerPressed(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e);
          private:
              int Cnt_L = 0;
              int Cnt_R = 0;
          };
      
  2. プロジェクトをコンパイル&ビルドして実行して下さい。
    border 内でマウスをクリックすると、クリックした回数が印字されます。
    Windows10 の「スタート」ボタンから[すべてのアプリ]を選ぶと今作製したアプリが登録されています。
    残しておく必要がなければ右クリックからアンインストールして下さい。

【NOTE】

VC-2017 Mouse Click に習って作成したプロジェクトは、実行してもマウスのクリックを検出できませんでした。
その後(2019/06/15)に Visual Studio Professional 2019 16.1.3 で実行を確認しました。

超初心者のプログラム入門(C/C++)