Key Count

Windows10 でキーをカウントします。

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

プログラムの説明

  1. このページは Windows10 & Visual Studio 2017 の環境で動かします。
    1. [ファイル][新規作成][プロジェクト]から[Visual C++][空白のアプリ(ユニバーサル Windows)]を選んで下さい。
      テンプレートが表示されないときは Visual Studio 2017 C++ を参照して下さい。
      フォルダーに App1(存在するときは App2)の名前で作成します。
    2. デザイン画面に TextBlock を規定値の名前("textBlock")で貼り付けます。
      TextBlock のサイズと位置を整えて下さい。
    3. MainPage.xaml.h に Key Down を検出する関数とカウントの領域を宣言します。
          public:
              void OnKeyDown(Windows::UI::Core::CoreWindow^ win, Windows::UI::Core::KeyEventArgs^ e);
      
          private:
              Windows::UI::Core::CoreWindow^ m_window;
              int     cnt = 0;
      
    4. MainPage.xaml.cpp で m_window を取得して OnKeyWown のイベントハンドラーを設定します。
      方法が解れば簡単なのですが CoreWindow(m_window) の取得とイベントハンドラーの設定に苦労しました。
      MainPage::MainPage()
      {
          InitializeComponent();
          m_window = Window::Current->CoreWindow;
          m_window->KeyDown += ref new TypedEventHandler<Windows::UI::Core::CoreWindow^,
              Windows::UI::Core::KeyEventArgs^>(this, &MainPage::OnKeyDown);
      }
      
    5. 続いて MainPage.xaml.cpp にキーが押された数をカウントして TextBlock に表示する関数を追加します。
      「↑」キーでカウントアップして、「↓」キーでカウントダウンします。
      void App1::MainPage::OnKeyDown(Windows::UI::Core::CoreWindow^ win, Windows::UI::Core::KeyEventArgs^ e)
      {
          String^ str = "**count = ";
          if (e->VirtualKey == Windows::System::VirtualKey::Up)   cnt++;
          if (e->VirtualKey == Windows::System::VirtualKey::Down) cnt--;
          str += cnt.ToString();
          textBlock->Text = str;
      }
      
  2. プロジェクトをコンパイル&ビルドして実行を確認して下さい。
    上下の矢印キーで設定したカウンターが TextBlock に表示されます。
    Windows10 の「スタート」ボタンから[すべてのアプリ]を選ぶと今作製したアプリが登録されています。
    残しておく必要がなければ右クリックからアンインストールして下さい。
  3. C# でも同様のプログラム Key Count を作成しています。
    C# WPF のプログラムは WPF KeyDown を参照して下さい。

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