新規プロジェクトの作成のページでは、何もしないだたのウィンドウ表示のプログラムを作成しましたが、このウィンドウにメニューを付けたいと思います。
と、その前に簡単に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();
             }


コメント