新規プロジェクトの作成のページでは、何もしないだたのウィンドウ表示のプログラムを作成しましたが、このウィンドウにメニューを付けたいと思います。
と、その前に簡単にVisualStudioの操作説明をしたいと思います。
フォーム(ウィンドウ)上にメニューやボタンなどを配置するときは、ソリューションエクスプローラのタブを選択し、フォームのファイル(*.h)を選択し、デザイナの表示アイコンをクリックします。
デザイナの表示からイベント処理などのソースコードを書くときはコードの表示アイコンをクリックします。
オブジェクト(メニューやボタン、ピクチャボックスなど)の名前や大きさ、位置などの情報を設定するには右下のプロパティタブを選択し、プロパティアイコンをクリックします。
メニューをクリックしたときなどの処理(イベント処理)を表示するにはイベントアイコンをクリックします。
と、準備はここまで。
フォームファイル(*.h)を選択し、デザイナを表示します。
右側のツールボックスをタブを選択し、この中からMenuStripを選択し、フォームの上にドラッグ&ドロップします。
次にここへ入力と書かれた部分に表示するメニューの文字を記入していきます。
ここで、ファイルの文字の右側に(F)と表示されていますが、これはメニューをAltキーを使って操作するときの文字で、文字の入力時にはファイル(&F)のようにアルファベットの頭に&を付けます。
また、メニューの間に表示されている仕切り線(Separator)はここへ入力の部分に - (ハイフン)を入力します。
ここで、デフォルトではそれぞれのメニューの名前(Name)は開くOToolStripMenuItemなどとなっており、このままだとソースコードに日本語が入ってしまっていまいちなので、それぞれ下表のように名前を付けておきます。
Text | (Name) |
ファイル(&F) | mnuFile |
開く(&O) | mnuFileOpen |
終了(&X) | mnuFileExit |
この名前の付け方はVB6.0の時に使っていたプレフィックスを用いていますが、詳しく知りたい方は
このページ↓を参照すると良いと思います。
http://msdn.microsoft.com/en-us/library/aa263493(VS.60).aspx
次にメニューをクリックしたときの処理(イベント処理)を追加していきます。
メニューのイベント処理は開く(O)をダブルクリックすると、メニューをクリックした時の処理のソースコードが自動的に作成されます。このへんはVB6.0と同じです。
private: System::Void mnuFileOpen_Click(System::Object^ sender, System::EventArgs^ e) {
}
この{ } の間にメニューをクリックしたときの処理を書いていきます。
下記は開くメニューをクリックした時にファイルを開くダイアログボックスを表示し、ファイル名を眼セージボックスで表示するソースコードです。
private: System::Void mnuFileOpen_Click(System::Object^ sender, System::EventArgs^ e) {
//ファイル→ファイルを開く
//ファイルを開くダイアログの作成
OpenFileDialog^ dlg = gcnew OpenFileDialog;
//ファイルフィルタ
dlg->Filter = "画像ファイル(*.bmp,*.jpg,*.png,*.tif,*.ico)|*.bmp;*.jpg;*.png;*.tif;*.ico";
//ダイアログの表示 (Cancelボタンがクリックされた場合は何もしない)
if (dlg->ShowDialog() == System::Windows::Forms::DialogResult::Cancel) return;
//取得したファイル名の表示
MessageBox::Show(dlg->FileName);
}
終了メニューは下記の通りです。
private: System::Void mnuFileExit_Click(System::Object^ sender, System::EventArgs^ e) {
//ファイル→終了
this->Close();
}