VC++入門
Windows GUIアプリケーションの作成
Visual
C++ 2012におけるWindowsフォームアプリケーションの作成
Creating a Windows form application
in Visual C++/CLR 2012
なお、LinuxやMacでも使えるGUIアプリケーション作成環境としてQt Creatorがあるが、
Qt Creatorについては<Qtクリエータ試用記>で説明した。
本ウェブサイトの内容を基にして<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房、第12章「フォーム・プログラミング」>を用意した。
Microsoft Visual Studio 2005を起動すると図1の画面になる。
図1
新しくプログラムを作成するときは、図2のようにメニュ「ファイル|新規作成|プロジェクト」を選ぶ。
図2
プログラムはプロジェクトとして管理される。メニュ項目「プロジェクト」をクリックすると図3のダイアログが表示される。
図3
プロジェクトの種類として「Visual C++」の下にある「CLR」をクリックして選び、テンプレートとして「Windowsフォームアプリケーション」をクリックして選ぶ。「Visual C++」の下に図3のように項目のリストが表示されていないときは、「Visual C++」の右側の小正方形の中に+印が表示されているのでそれをクリックすると項目のリストが表示される。「Windowsフォームアプリケーション」の選択後、プロジェクト名、場所、ソリューション名を設定する。場所で指定したフォルダの下にソリューション名として設定した名前のフォルダが作成され、ソリューション名のフォルダの下にプロジェクト名として設定した名前のフォルダが作成される。場所は、右側の「参照」ボタンをクリックすると図4のダイアログが表示されるので、適当なフォルダを指定する。
図4
「探す場所」欄に目的のフォルダが表示されているときに「開く」ボタンをクリックすると、そのフォルダが図2での「場所」として設定される。「場所」の設定後、プロジェクト名とソリューション名を設定する(図5)。
図5
プロジェクト名とソリューション名は同じでもよいが、図5では後の説明でわかりやすいように変えてある。プロジェクト名とソリューション名の設定後、「OK」ボタンをクリックすると図6の画面になる。
図6
プログラミングの対象となるフォームが表示されている。主プログラムのファイル名はプロジェクト名に拡張子「.cpp」の付いたものであり、フォームに対するプログラミングはファイル名Form1.hのヘッダーファイルに行う。主プログラムのファイル名をダブルクリックすると図7のようにエディタに表示される。
図7
関数mainの実行により、フォームを表すオブジェクトForm1が作成され、Windowsのイベント待ちの状態となる。イベントに対する処理などはヘッダーファイルForm1.hに記述する。フォームに対応するヘッダーファイルForm1.hをエディタに表示するときは、まず「Form1.h[デザイン]」タブをクリックしてフォームを表示させる(図8)。
図8
図8の状態でメニュ「表示|コード」(図9)を選ぶと図10のようにエディタにヘッダーファイルの中身が表示される。
図9
図10
この時点でフォルダを見てみると図11のようになっている。
図11
いろりろなファイルがVisual Stadioによって自動的に作成されれていることがわかる。ソリューション名のフォルダの下にプロジェクト名のフォルダが作成され、その下にプログラムを書き込むファイルForm1.hが用意されていることがわかる。プログラミングの対象となるのはヘッダーファイルForm1.hである。他にもいろいろなファイルが用意されているが、これらはVisual Studioがプロジェクトの管理のために自動的に用意しているもので気にする必要はない。
図8のフォームに対するプログラミングは以下のように行うことができる。
まず、ボタンのクリックによって処理が行われるようにするためにボタンをフォーム上に用意する。図10のエディタ表示の状態から図8のフォーム表示の状態に切り替えるために「Form1.h[デザイン]」タブをクリックする(図12)。
図12
図12のフォームが表示されている状態でツールボックスを表示させる。
図13
ツールボックスは、マウスのカーソルを「ツールボックス」タグの上に移動させると表示される。
ツールボックス内のボタンなどのコンポーネントはマウスでクリックしてフォームの好みの位置にドラッグすることにより、フォームに貼り付けることができる(図14)。
図14
貼り付けたコンポーネントにイベントに対する処理は、そのコンポーネントをダブルクリックすることによっても記述することができる。
図15
イベントに対す処理は、より一般的にはプロパティウィンドウの稲妻印(図16)をクリックして表示されるイベント一覧から選んで行うこともできる(図16)。
図16
イベント一覧(図17)から適当なイベントを選んでその右側のセルをダブルクリックすると、そのイベントに対応する処理を記述する関数が自動的に用意されて表示される。
図17
図15のボタンbutton1をダブルクリックすると図18のようなエディタ画面となる。
図18
ツールボックスの立っているピンをクリックして寝かせるとツールボックスは隠れる。Visual Studioによって自動的に用意されたbutton1のクリックによって呼び出される関数button1_Clickを表示すると図19のようになっている。
図19
この関数に図20のように書き加える。
図20
ボタンbutton1がクリックされると
MessageBox::Show("こんにちは");
が実行されて、「こんにちは」と表示されたメッセージボックスが表示される。
ボタンbutton2に対しても同様の操作を行って、図21のようなコードを書き加える。
図21
ボタンbutton2のクリックでは、表示されたメッセージボックスをクリックすると
MessageBox::Show("さようなら");
の実行が終了して、次の
Close();
が実行される。この「close()」の実行によってプログラムの実行は終了する。
作成したプログラムを実行するときは、F5キーをおすか、メニュ「デバッグ開始」を選ぶ。
図22
デバッグ状態で実行すると、メニュ「デバッグ|デバッグの停止」を選ぶことによってプログラムの実行を停止することができる。
図23
図22と図23でメニュの内容が異なることに注意。メニュの中の項目は、Visual Studioの状況に応じて変化する。
図21のソースコードで「デバッグ開始」などを選んでプログラムを実行しようとすると、図24がダイアログが表示される。
図24
「はい」ボタンのクリックでビルドが始まり、リンクの後プログラムの実行となる。実行開始で図25のフォームが表示される。
図25
ボタンbutton1をクリックすると図26のメッセージボックスが表示される。
図26
「はい」ボタンのクリックでメッセージボックスは消える。
ボタンbutton2のクリックで図27のメッセージボックスが表示される。
図27
「はい」ボタンのクリックでメッセージボックスが消えるが、この後「Close()」が実行されてプログラムの終了となる。プログラムはフォームの右上のX印のボタンのクリックでも終了することは他のWindowsアプリケーションと同じである。
上の作業後、フォルダ内を見ると図28のようになっている。
図28
新しくフォルダ「Debug」が作成されている。フォルダ「Debug」は、プロジェクト名のフォルダの下だけではなく、ソリューション名のフォルダの直下にも作成されている(図29)。
図29
ソリューション名のフォルダ直下のフォルダDebug内には、プロジェクト名にファイル拡張子「.exe」の付いたファイルが作成されている。このファイルはダブルクリックによって直接実行することができる。
作成済みのプログラムを開くときは、メニュ「ファイル|開く|プロジェクト/ソリューション」を選ぶ(図30)。
図30
表示されたダイアログ(図31)において、ソリューション名のフォルダを選び、ソリューション名に拡張子「.sln」の付いたファイルを選んで開く。
図31
あるいは、プロジェクト名のフォルダ内にあるプロジェクト名に拡張子「.vcproj」の付いたファイルを選んでもよい。
図32
図31あるいは図32で、ファイル名をクリックして選択してもダイアログのファイル名の欄にはファイル名が表示されないが、そのまま「開く」ボタンをクリックすればよい。「開く」ボタンのクリックで図33のようにプログラム(プロジェクト)が表示される。
図33
図33のように表示されないときは、ソリューションが読み込まれたことを確認して(Visual Studioの左上キャプションに、ソリューション名が表示される。図33の場合は、「guiapp.sln – Microsoft Visual…」と表示されている)、ソリューションエクスプローラ内のファイル名をダブルクリックする。図33の場合で何も表示されていないときは、ヘッダーファイルのツリーにおける「Form1.h」をダブルクリックする。このときは「Form1」のデザインが表示されるが、さらにメニュ「表示|コード」を選ぶと図33のようにコードが表示される。ソリューションエクスプローラが図33のようにウィンドウの形で表示されていないときは、「ソリューションエクスプローラ」と表示されているタブを探してクリックするとソリューションエクスプローラウィンドウが表示される。
なお、Visual C++の簡単なプログラム例を
ホームページ「2009年度Visual C++2005/CLRサンプルプログラム」
に用意している。
C++プログラミングを主に扱うホームページを用意しました。