グラフィックス

赤い線を描いてみます。

線に色を付ける (win151)

"MyApp.h" ファイルだけ載せます。 青い部分を見て下さい。

//
//	MyApp.h
//

class MyApp : public MyMainWnd{
public:
	// WM_PAINT
	void wmPaint(HDC hdc){
		MyDC g(hdc);

		// 線の色を指定--------------------------
		HPEN hNewPen, hOldPen;
		
		hNewPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));	// ペンを作る
		hOldPen = (HPEN)SelectObject(hdc, hNewPen);	// ペンを登録
		// 直線を描く----------------------------
		g.MoveTo(10, 10);
		g.LineTo(100, 100);
		//---------------------------------------
		SelectObject(hdc, hOldPen);		// 元のペンに戻す
		DeleteObject(hNewPen);			// ペンを開放
	}
};

実行画面です。

解説

描画関数と、色は切り離されています。 ペンを作って、それで描くということです。 このペンは、色だけでなく点線とかも指定できます。 やり方は、CreatePen関数でペンを作り、SelectObject関数でペンを登録します。

	HPEN hNewPen;

	hNewPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));	// ペンを作る
	SelectObject(hdc, hNewPen);		// ペンを登録する

このhNewPenを使って描画してくれます。 さて、色は、RGB( , , ) を使います。赤、緑、青の3色を数値で与えます。 描画を終えたらペンを開放します。

	DeleteObject(hOldPen);

さて、ペンを開放するとペンがなくなってしまいます。 そのため、元々あったペンを再登録しています。 元のペンは、SelectObject関数が返してくれるので、hOldPenに代入しています。。


[目次] [次]