前回(6/5)の復習

「ゼロからはじめる Visual C++」(ゼミ, 2003, 荒木)
1
前回 (6/5) の復習
1. アプリケーションウィザードで、アプリケーションの雛形を作成
2. ウィンドウに、文字列・矩形 (Box)・点・直線を描くプログラムの作成
アプリケーションウィザードで雛形の作成
pp. 35∼36
文字列の表示
CChildView::OnPaint(void) に次のコードを追加
dc.SetTextColor(RGB(255,0,0));
dc.SetBkMode(TRANSPARENT);
dc.TextOut(0,0,"まともに眠りたい");
矩形の描画
CChildView::OnPaint(void) に次のコードを追加
CBrush NightBrush;
CBrush *pOldBrush;
NightBrush.CreateSolidBrush(RGB(0,0,128));
pOldBrush = dc.SelectObject(&NightBrush);
dc.Rectangle(0,0,400,400);
dc.SelectObject(pOldBrush);
NightBrush.DeleteObject();
点の描画
CChildView::OnPaint(void) に次のコードを追加
int i;
CPoint star;
srand(100);
for(i=0;i<400;i++) {
star.x = (int)((double)rand()*400/RAND_MAX);
star.y = (int)((double)rand()*400/RAND_MAX);
dc.SetPixel(star.x,star.y,RGB(0,255,255));
}
「ゼロからはじめる Visual C++」(ゼミ, 2003, 荒木)
2
直線の描画
CChildView::OnPaint(void) に次のコードを追加
CPen *pOldPen = (CPen *)dc.SelectStockObject(WHITE_PEN);
dc.MoveTo(360,180);
dc.LineTo(100,340);
dc.SelectObject(pOldPen);
ポイント
1. すべて MFC (マイクロソフトが提供するクラスライブラリ) の特殊な
仕様だから、覚える必要はまったくない。「こんなものか」という感じ
でとらえておく。別の場所でおなじような処理をする必要があるときに
は、ここでつくったコードをそのままコピーすればよいだけ。ただし、
どこをどう変えれば望むような結果になるか(たとえば、矩形の色を変
えるにはどこを変えればよいか)は、おぼろげにでもとらえておく。
2. ただし、点の描画の次の部分は、C/C++ 言語の基本。
int i;
srand(100);
for(i=0;i<400;i++) {
star.x = (int)((double)rand()*400/RAND_MAX);
star.y = (int)((double)rand()*400/RAND_MAX);
}
この部分だけは、何をやっているのか理解しておきましょう。
今回 (6/12) の作業
1. ビットマップエディタで月を描き、ウィンドウに表示させる
2. アプリケーションのメニューをデザイン
3. コマンドハンドラ関数の作成
4. コマンドハンドラ関数の中身を書く (「実装」)
5. 更新ハンドラ関数の作成と実装
6. アクセラレータキー (ショートカットキー) の設定