簡単なVisual C++ フォーム アプリケーション プログラミング
Visual C++ 2012を用いての解説であるが、Visual C++ 2013 (Visual Studio 2013)の場合も同様である。
なお、C++の説明を<岡本安晴「大学生のための心理学VC++プログラミング入門」>で行っている。
Visual C++2012はVisual Studio 2012を起動することによって利用する。Visual Studio Express 2012 for Windows Desktopをインストールしたときは、スタートメニュから「VS Express for Desktop」を選ぶと起動できる(図1)。
図1
Visual Studio Express 2012 for Windows DesktopはMicrosoft社のウェブサイト
http://www.microsoft.com/visualstudio/jpn/downloads
から無料でダウンロードできる(2013.10.18現在では、Visual Studio Express 2013に更新されている)。Visual C++の学習にはこれで十分である。
有料のVisual Studio Professional 2012をインストールしたときは、「Visual Studio 2012」を選べばよい(図2)。
図2
新規にプログラムを作成するときは、
の手順になる。
まず、「ファイル|新しいプロジェクト」(図3)、
図3
あるいは「ファイル|新規作成|プロジェクト」(図4)を選ぶ。
図4
「新しいプロジェクト」ダイアログウィンドウが表示される(図5)。
図5
左のテンプレートから「Visual C++|CLR」を選ぶ。項目「Visual C++」の下に「CLR」などの下位の項目が表示されていないときは、「Visdual C++」の左にある右向きの白い三角形をクリックすると表示される。表示されると右向きの白い三角形は、右下向きの黒い三角形に変わる。黒三角形をクリックすると右向きの白い三角形に変わり、下の下位項目は隠される。
左のテンプレートの「Visual C++」の下の「CLR」をクリックして選んだときに表示されている右側のリストから「空のCLRプロジェクト」を選んでクリックする。図5のウィンドウにおいて、「場所」はソリューションの置かれるディレクトリ(フォルダ)を指定する。これは、右にある「参照」ボタンをクリックすると「プロジェクトの場所」ダイアログウィンドウが表示されるので(図6)、これを利用して設定することができる。
図6
図6では、フォルダ「easyvcpp2012」を選んでいる。フォルダはダイアログウィンドウの「新しいフォルダ」メニュをクリックして作成することができる。プログラム(プロジェクト)を格納するフォルダをクリックして選択してから、下にある「フォルダーの選択」ボタンをクリックすると、その指定されたフォルダ名が「場所」欄に表示される(図5)。このとき「名前」と「ソリューション名」は同じ名前であるが(フォルダとしては別である。ソリューションフォルダの下にプロジェクトフォルダが置かれる)、別の名前を用いるときは、「名前」の入力欄をクリックしてマウスのカーソルを置けば、メモ帳などのエディタと同じような操作で名前を設定しなおすことができる。「名前」に設定された文字列はプロジェクト名になるが、「名前」を設定しなおすと、同じ文字列が「ソリューション名」に設定される。ソリューション名を別のものにしたいときは、ソリューション名の入力欄をクリックしてカーソルを置き、再設定する。普通は、プロジェクト名とソリューション名は同じでよい。
「名前」の設定と、必要ならば「ソリューション名」も設定しなおした後、「OK」ボタンをクリックする。「空のプロジェクト」が作成されたら、Visual Studioの左上にプロジェクト名、いまの場合(図5の設定の場合)「Project1」、が表示される。
図7
まず、フォームアプリケーションのフォームを作成する。メニュ「プロジェクト|新しい項目の追加」を選ぶ(図6)。
図8
「新しい項目の追加」を選んでクリックすると、「新しい項目の追加」ダイアログウィンドウが表示される(図9)。
図9
「Visual C++」の下に表示される(隠されているときは「Visual C++」の左の白い右向き三角形をクリックする)項目から「UI」を選んでクリックする(UI: User Interface)。このときに、右に表示されている項目「Windows フォーム」を選んでクリックする。下の名前欄の名前は変更できるが、このままにしておく。変更するときは、ヘッダーファイル名となるように、ファイル拡張子を「.h」としておく。
図9において、右下の「追加」ボタンをクリックすると、図10のようにフォームが表示される。
図10
作成されたフォームにボタンなどいろいろなコントロールを張り付けて利用することができる。フォーム上にコントロールを張り付ける方法などは<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房>の「第U部 Visual C++/CLRプログラミング」で説明している。ここでは、図10のフォームだけを作成した状態で説明を続ける。
次に、上で用意したフォームをプログラム実行時に生成して表示するためのプログラムを用意する。先に説明したメニュ「プロジェクト|新しい項目の追加」(図8)の選択以下の操作を行うが、今回は表示されるダイアログボックス(図9)において、「Visual C++|コード」を選ぶ(図11)。このとき右側に表示されている項目から「C++ファイル」をクリックして選ぶ。下の「名前」は変更できるが、変更する必要はない。
図11
「追加」ボタンをクリックすると、「名前」で設定されているファイル名(いまの場合、Source.cpp;他の名前(ファイル拡張子は.cpp)に変更してもよい)のファイルが用意され、表示される(図12)。
図12
中身が何もない空のファイルである。図13のように書き加える。
図13
includeされているヘッダーファイルMyForm.hは、上で作成したヘッダーファイル(図9、図10)である。名前空間Project1は、ヘッダーファイルMyForm.hで宣言されているもので(図14)、プロジェクト名が自動的に用いられる。フォームを表す変数の型MyFormは、フォームのヘッダーファイル名から拡張子「.h」を除いたものを型名として自動的に用意されるものである。
図14
図13において、関数int main( ){ ・・・ }の直前に
[STAThreadAttribute]
と書かれているのは、OpenFileDialogクラスのShowDialogメソッドなどの呼び出しを行うときにはSTAモードでなければならないことによる。
図13のコードの入力が終わったら、ビルド(コンパイルとリンク)を行う。メニュ「ビルド|ソリューションのビルド」を選んでクリックする(図15)。
図15
エラーがなければ、図16のように「1 正常終了」と表示される。エラーがあれば、該当するところを修正して、ビルドを繰り返し、「1 正常終了」となるまでエラーを修正していく。
図16
「1 正常終了」であれば、プログラムを実行する。実行は、キーボードの上側の並びにある「F5」キーを押せばよい。「F5」キーを押すと、まずコンソールウィンドウという図17のようなウィンドウが表示される。
図17
しばらくして図10で設定したフォームが表示される(図18)。
図18
表示されたフォームの右上角のX印のボタンをクリックするとフォームは消え、図17の黒いコンソールウィンドウも消えて、プログラムの実行終了となる。
図17で表示されるコンソールウィンドウは以下の設定で非表示とすることができる。
まず、メニュ「プロジェクト|プロパティ」を選んでクリックする(図19)。
図19
表示されるプロパティページにおいて「構成プロパティ|リンカー|システム」を選ぶ(図20)。
図20
「構成プロパティ」の左の3角形が白色の横向きのときは、3角形をクリックすると右下向きの黒3角形に変わり、その下に下位項目が表示される。
「サブシステム」の右の欄が空欄であるが、右端の3角形のついたボタン(「サブシステム」欄をクリックすると表示される)をクリックすると項目のリストが提示される(図21)。
図21
「Windows (/SUNSYSYTEM:WINDOWS)」をクリックして選択する。図22のように選択したものが設定されるのを確認する。
図22
画面右下の「適用」ボタン(図23)をクリックして図22で設定したものをプロジェクトのプロパティに適用する。
図23
次に、エントリポイントの設定を行う。図23のプロパティページおいて、項目「構成プロパティ|リンカー|詳細設定」をクリックして選ぶ(図24)。
図24
「エントリポイント」の欄が空欄であるが、この欄にエントリポイント(プログラムの実行開始位置)となる関数名を設定する。エントリポイントとなる関数名は、図25の場合「main」であるので、「エントリポイント」の空欄をクリックしてカーソルを置いてから「main」とキーボードを打ち入力する。「main」と入力後Enter(CR)キーを押すと、プロパティページの右下の「適用」ボタンがイネーブルになるので、クリックしてプロパティページの設定を適用する。
図25
上の「サブシステム」と「エントリポイント」の項目の設定後は、プログラムの実行時にコンソールウィンドウは表示されない。