さて、アプリとしてはなんとなく完成したので、今回は趣向を変えて、「ちゃんとしたアプリっぽくする」事を考えて見ましょう。
このままではあくまでテストアプリにしか見えません。どこが問題か、1つ一つ抑えていきましょう。
タイトル
画面キャプチャを見るとわかりますが、いつもタイトルがForm1 となっています。コレはいただけませんね。ちゃんとアプリケーションの名前が出るようにしましょう。コレは簡単でForm の設定を変更するだけです。
フォームの何も無いところ(たとえばDelete ボタンの左など)をクリックします。右下のプロパティウィンドウでForm1 のプロパティを変更します。
| コントロール |
コントロール ID |
プロパティ名 |
設定値 |
| Form |
Form1 |
Text |
"Sound Player" |
Form もひとつのコントロールです。このText プロパティが、実行時にアプリケーションタイトルとして表示されますので、ちゃんと抑えておきましょうね。(実はコレまで意図的にこの部分は設定していなかったんです。このネタのため)
Play ボタン
今度はアプリケーションとしてみてみます。今のところ実行時にまだ何もWav ファイルを選択していない状態でPlay ボタンを押すと多分、エラーとなってしまいます。コレはいただけませんね。ちゃんと対処して、実行したときにエラーで落ちてしまうような事は無いようにしましょう。対処方法はたとえばこんな方法があります。
- Play ボタンを押したときにテキストボックスにファイル名が無いときは処理をしない
- Play ボタンを押したときにファイルがあるかどうかチェックする
- ファイルが選択されていないときにはPlayボタンを押せないようにする
1の方法は、簡単です。音声を再生する際に1度チェックをすればいいだけです。Play ボタンをダブルクリックして、以下のようにコードを書くだけです。!= は ≠ の意味です。< > でもOKです。テキストが空でなかったら...って事ですね。
private void btnFileOpen_Click(object sender, EventArgs e) { if( this.txtFile.Text != "" ) WCE_PlaySound( this.txtFile.Text, IntPtr.Zero, SND_ASYNC | SND_FILENAME ); }
|
さて、2の方法は、1の方法と合わせると効果的です。つまりファイル名が入っていても実際にそのファイルが存在するかどうか、もう一度チェックするのです。この、ファイルの存在をチェックする方法はまた今度。
最後に3の方法です。コレはどうやるかと言うと、こんな感じですね。
- はじめにボタンが押せない状態にしておきます
- ファイルを選択したら、ボタンが押せる状態にします
まずはボタンの状態を押せないようにしておきましょう。コレはボタンコントロールの Enabled プロパティで変更できます。
| コントロール |
コントロール ID |
プロパティ名 |
設定値 |
| Button |
btnPlay |
Enabled |
False |
Enabled を False にしておくとボタンはグレーアウトした状態になり、押せなくなります。後はファイルを選択したときに、Enabled プロパティで True にするだけです。... ボタンをダブルクリックしてコードを追加します。
private void btnFileOpen_Click(object sender, EventArgs e) { // ダイアログを開いたときの戻り値用の変数 DialogResult result; // ダイアログを開いてファイル選択をさせる result = this.openFileDialog1.ShowDialog();
// OKを押したときは処理をする(Cancel のときは処理をしない) if (result == DialogResult.OK) { // テキストボックスに選択したファイル名を入れる this.txtFile.Text = openFileDialog1.FileName; this.btnPlay.Enabled = true; } }
|
このように、画面で設定したプロパティは、実行中にプログラムから変更が出来ます。(コレまでもやってきたわけですが)つまり、画面のプロパティウィンドウで設定した値は「初期値」、そしてプログラムで書いた処理が、実行時に反映されるわけです。
アイコン
エミュレータや実機の環境で、ファイルマネージャーを開いて、\Program Files\SoundPlayer を開くとそっけないアイコンが表示されています。正直コレはいただけませんね。という事でアイコンを作って適応しましょう。
「プロジェクト」メニューの「新しい項目の追加」を選択します。するとダイアログが出てきますので、「アイコンファイル」選択します。ファイル名はそのまま「Icon1.ico」でもいいですし変えてもかまいません。するとアイコンエディタが出てきますのでここでアイコンをデザインします。がんばってくださいね。
アイコンは2種類作ります。「プログラム」の一覧に登録したときに使われる、32x32 dot のアイコン。そして、ファイルマネージャーなどで使われる16x16 dot のアイコンの2つです。はじめの状態では32x32 dot のアイコンが表示されているのでここからデザインしてみましょう。
濃い緑の部分は透明となる色です。ここにペイントブラシの要領で絵を描いていけばいいわけです。

さて書き終わったら、「イメージ」メニューから「現在のアイコンイメージ タイプ」を選択し、今度は「16x16、16色」を選択します。そして今度は、小さいアイコンを書きます。

ちなみに、黒い音符だけでもいいんですが、黒の角々のところにグレーのドットを入れる事でちょっとだけ、スムージングがかかります。コレをアンチエイリアシングといいます。ちょっとだけきれいなアイコンを書くコツですね。
さて、アイコンが出来たら一応フロッピーのアイコンを押して保存しておきましょう。今度はこのアイコンを登録します。
「プロジェクトメニュー」の「SoundPlayer のプロパティ」を選択してウィンドウを開きます。ここの「アプリケーションタグ」のウィンドウから、リソース枠のなかの「アイコン」のドロップダウンリストから、Icon1.icoを選択します。選択すると規定のアイコンから作成した音符アイコンに変わります。
後はコンパイルして実行するだけでOKです。
エミュレーターや実機の環境で、ファイルマネージャーで、アイコンを見て見ましょう。自分で作った♪アイコンに変わっている事がわかります。自作アイコンを設定するだけで、かなり自分で作ったアプリの親近感が増すのは気のせいでしょうか?
まとめ
ようやくアプリケーションがまとまってきました。動作してエラーが無いように修正する。アプリケーションの見た目を整える。アプリケーションの実行ファイルを整えるといったところです。今後、この手の作業は特に指定する事はありませんが、自分で毎回作ってみるといいかもしれません。
さて、次は何にしよう。グラフィックか、ファイル操作か、はたまたネットワークがらみか、ですね。ではまた次回もお楽しみに。