ウィンドウに白い線を引きたい:
case WM_PAINT:
{
hdc=GetDC(hWnd);
SelectObject(hdc, GetStockObject(WHITE_BRUSH));
MoveToEx(hdc, 0, 0, 0);
LineTo(hdc, 100, 100);
ReleaseDC(hWnd, hdc);
}
しかし、色はまだ黒です。どうしたの?
ペンを使用する必要があるときに、線にブラシを設定しようとしています。ブラシを使用して図形の内部を塗りつぶし、ペンを使用して線を描画します。
MSDNは、ペンについて次のように述べています。
ペンは、アプリケーションが線や曲線を描くために使用できるグラフィックツールです。描画アプリケーションは、ペンを使用してフリーハンドの線、直線、および曲線を描画します。
そしてこれはブラシについてです:
ブラシは、アプリケーションがポリゴン、楕円、パスの内部をペイントするために使用するグラフィックツールです。
コードは次のようなものにする必要があります。
case WM_PAINT:
{
PAINTSTRUCT ps;
hdc=BeginPaint(hWnd, &ps); // Used instead of GetDC in WM_PAINT
HPEN hPen = CreatePen(PS_SOLID, 1, RGB(255,255,255));
HPEN hOldPen = SelectObject(hdc, hPen);
MoveToEx(hdc, 0, 0, 0);
LineTo(hdc, 100, 100);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &ps); // Used instead of ReleaseDC in WM_PAINT
}