マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部

エバンジェリスト 泉 貴博

最終更新日 2006 年 3 月 30 日

このコンテンツのポイント

  • Pocket PC のハードウェアボタンの機能を利用する。

今回紹介するコード

<Form1.cs>

 

C#
using Microsoft.WindowsCE.Forms;
private void button1_Click(object sender, EventArgs e)
{
    // ハードウェアボタンをフォームに関連付ける
    hardwareButton1.AssociatedControl = this;
    hardwareButton2.AssociatedControl = this;
    // ハードウェアボタンに関連付けるキー値を指定する
    hardwareButton1.HardwareKey = HardwareKeys.ApplicationKey1;
    hardwareButton2.HardwareKey = HardwareKeys.ApplicationKey2;
}

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    // Form のKeyUpイベントで取得するパラメータによってどの
    // どのハードウェアボタンがクリックされたのか判断
    if ((HardwareKeys)(e.KeyCode) == HardwareKeys.ApplicationKey1){
        MessageBox.Show("ハードウェアボタンが押されました!");
    }else if((HardwareKeys)(e.KeyCode) == HardwareKeys.ApplicationKey2){
        // Form を閉じる
        this.Close();
    }
}
 

今回のシステム要件

  • Visual Studio 2005

目次

はじめに
作成するアプリケーションの概要
フォームの作成
コードの入力
動作と解説
おわりに


はじめに

Visual Studio 2005 / .NET Compact Framework 2.0 では スマート デバイスの機能を活用する多くの機能強化がなされました。その中で、今回は、Pocket PC のハードウェアボタンを、アプリケーションからコントロールする方法をご紹介します。

作成するアプリケーションの概要

今回のサンプルでは、Pocket PC のハードウェアボタンが押されたときに、それぞれのハードウェアボタンに対応する処理を行うアプリケーションを作成します。

フォームの作成

Visual Studio 2005 を起動して、新規にプロジェクトを作成します。
ここでは、[Visual C#] で [デバイス アプリケーション] テンプレートを使用します。

図 1. デバイス アプリケーションの作成

プロジェクト メニューの [参照の追加] より Microsoft.WindowsCE.Forms を追加します。

図 2. 参照の追加

次に、デフォルトで作成されている Form1.cs に button コントロールを追加し、次に hardwareButton コントロールを 2 つ追加し、プロパティを以下のように設定します。

コントロール ID プロパティ名 設定値
button1 Width 180
  Text ハードウェアボタンの利用

 

図 3. 必要なコントロールを追加したところ

コードの入力

button1 コントロールをダブルクリックし、button1_Click プロシージャを以下のように設定する。

C#
private void button1_Click(object sender, EventArgs e)
{
    // ハードウェアボタンをフォームに関連付ける
    hardwareButton1.AssociatedControl = this;
    hardwareButton2.AssociatedControl = this;
    // ハードウェアボタンに関連付けるキー値を指定する
    hardwareButton1.HardwareKey = HardwareKeys.ApplicationKey1;
    hardwareButton2.HardwareKey = HardwareKeys.ApplicationKey2;
}
 

次に名前空間をインポートする

C#
using Microsoft.WindowsCE.Forms;
 

プロパティ ウィンドウで、イベント ボタンをクリックし、Form1 の KeyUp イベントをダブルクリックする

図 4. KeyUp イベント プロシージャの生成

生成された KeyUp イベント プロシージャに以下のようにコードを入力する。

C#
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    // Form のKeyUpイベントで取得するパラメータによってどの
    // どのハードウェアボタンがクリックされたのか判断
    if ((HardwareKeys)(e.KeyCode) == HardwareKeys.ApplicationKey1){
        MessageBox.Show("ハードウェアボタンが押されました!");
    }else if((HardwareKeys)(e.KeyCode) == HardwareKeys.ApplicationKey2){
        // Form を閉じる
        this.Close();
    }

}
 

これで完成です。それでは実行して動作を確認してみましょう。

動作と解説

作成したデバイス アプリケーションを実行します。今回は、Visual Studio 2005 に付属する Pocket PC 2003 SE エミュレータを使用します。

図 5. エミュレータの選択

上記画面で配置ボタンをクリックします。

図 6. エミュレータの選択

この状態、つまり、この Pocket PC のハードウェアボタンのデフォルトの動作を確認します。デバイス下部に並んだ一番左のボタン ハードウェアボタン 1 をクリックしてみましょう。

図 7. デフォルトのハードウェアボタン 1 の動作

デフォルトの動作では、このようにスタート メニューの表示を行うように設定されています。

それでは、作成したアプリケーションで、このハードウェアボタンを利用できるように、作成した [ハードウェアボタンの利用] ボタンをクリックし、再度ハードウェアボタン 1 をクリックしてみましょう。

図 8. アプリケーションからのハードウェアボタンの利用

ハードウェアボタン 1 がクリックされたときに、スタート メニューが表示されるのではなく、メッセージ ボックスを表示させることができました。次に、ハードウェアボタン 2 をクリックし、画面が閉じることを確認しましょう。

おわりに

このように、独自に作成したアプリケーションから、ハードウェアボタンが押されたときに、独自の処理を実行させ、よりユーザービリティの高いアプリケーションを作成することが容易に可能になりました。.NET Compact Framework 2.0 では、このようにハードウェアの機能を活用するための機能強化が、たくさん行われております。又、この例では hardwareButton コントロールという新しい Windows フォーム コントロールにより開発者の生産性が大きく向上していることをご確認いただきました。


Code Recipe .NET Framework デベロッパー センター

ページのトップへ