我想在我的窗口画一条白线:
case WM_PAINT:
{
hdc=GetDC(hWnd);
SelectObject(hdc, GetStockObject(WHITE_BRUSH));
MoveToEx(hdc, 0, 0, 0);
LineTo(hdc, 100, 100);
ReleaseDC(hWnd, hdc);
}
但颜色仍然是黑色。什么错了?
答案 0 :(得分:3)
当您应该使用笔时,您正尝试为线条设置画笔。刷子用于填充形状的内部,而笔则用于绘制线条。
MSDN says关于钢笔:
笔是应用程序可用于绘制线条的图形工具 曲线。绘图应用程序使用笔直接绘制手绘线 线条和曲线。
关于画笔的this:
画笔是应用程序用于绘制内部的图形工具 多边形,椭圆和路径。
您的代码需要更像这样:
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
}