ウィンドウ事始めで作った普通のウィンドウ(以下単にウィンドウ)を扱います。ウィンドウを"作成"したときの、プロジェクト名を思い出しましょう。testでした。この名前のついたフォルダーの中の、ファイル拡張子がdswのファイル(test.dsw)をダブルクリックして、VC++を起動します。画面の左側に、右図のようなワークスペースと呼ばれるウィンドウが現れます。
その下方に3つのタブ(左から、Class View, Resource View, File View)がありますが、このうちFile Viewタブをクリックすると、ワークスペースに含まれているファイルがtree状(ツリー:木が、その枝を広げてゆく様子に似ている)に表示されます。+記号をクリックするにしたがい、以下の図のようにツリーが開いてゆきます。適当に、+記号をクリックしてツリーを開いていったり、ー記号になったところをクリックして、ツリーを閉じたりしてみましょう。
さて、Source Filesのところにある test.cppをダブルクリックすると、このファイルの内容が画面に現れます。画面を下方にスクロールして
void CMainFrame::OnPaint() { CPaintDC dc(this); dc.TextOut(0, 0, "Hello World!"); }
なる関数OnPaint()を見つけてください。"Hello World!"の""(コーテーション・マーク:両方とも半角)で囲まれた文字列を変えましょう。日本語でもかまいません。その後、このプログラムを実行します。すなわち、メニューでビルド->実行を選択すると、
のようなダイアログ ボックスが現れますので、ここで、”はい”ボタンをクリックします。コーテーション・マークに囲まれている文字列が現れるはずです。コーテーション・マークを全角のもの ” にするとエラーになりますので注意が必要です。
次に、
void CMainFrame::OnPaint() { CPaintDC dc(this); dc.TextOut(0, 0, "適当に!"); dc.MoveTo(0,0);dc.LineTo(100,100); }
の様に、dc.MoveTo(0,0);dc.LineTo(100,100);を追加して、プログラムを実行してください。直線が現れます。ウィンドウの白地のところをクライアント領域(client)といいます。この領域の座標に関しては、左上が座標の原点(0,0)で、x軸の正の方向は右手方向、そしてy軸の正の方向は下方となっています。通常の座標系とはy軸の方向が違います。座標(0,0)と(100,100)を適当に変えて、その変化を見ましょう。TextOutの第一引数と第二引数も座標なので、これも適当に変えて見ましょう。これで、TextOut、MoveTo、LineTo関数は、実験データのグラフを描くときに使えることが分かります。
以上の様に、OnPaint()関数の中には、グラフを描画するためのプログラムを書くことになります。
ところで、CPaintDC dc(this)というのは何を意味しているのでしょうか。C++でのクラスとオブジェクト"生成"なのですが(注)、これを理解するための時間がないという方には、とりあえず擬人化して理解してください。すなわち、CPaintDC dc(this)は、"描画の専門家(CPaintDC)であるdcさんに登場願います"ということを意味します。すると、dc.TextOutは"dcさんに、文字を出力してください"という要請をしているという意味にとれます。専門家には、その他、文字列の専門家CStringとかファイルの専門家CFileなどがいます。