0

ウィンドウに白い線を引きたい:

    case WM_PAINT:
    {
        hdc=GetDC(hWnd);
        SelectObject(hdc, GetStockObject(WHITE_BRUSH)); 
        MoveToEx(hdc, 0, 0, 0);
        LineTo(hdc, 100, 100);
        ReleaseDC(hWnd, hdc);
    }

しかし、色はまだ黒です。どうしたの?

4

1 に答える 1

3

ペンを使用する必要があるときに、線にブラシを設定しようとしています。ブラシを使用して図形の内部を塗りつぶし、ペンを使用して線を描画します。

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
}
于 2012-06-22T16:32:40.427 に答える