我尝试过以下操作,但框架/边框没有显示出来。我尝试了FrameRect和Rectangle。 任何想法,为什么这不起作用?
case WM_CTLCOLOREDIT:
{
HDC hdC = (HDC)wParam;
SetTextColor( hdC, RGB(112,112,112) );
SetBkMode( hdC, TRANSPARENT );
RECT rect;
GetClientRect( (HWND)lParam, &rect );
HBRUSH hBrush = CreateSolidBrush( RGB(209,209,209) );
//FrameRect( hdC, &rect, hBrush );
Rectangle( hdC, (int)rect.left, (int)rect.top, (int)rect.right, (int)rect.bottom );
DeleteObject( hBrush );
LOGBRUSH lb;
lb.lbStyle = BS_SOLID;
lb.lbColor = RGB(249,249,249);
lb.lbHatch = 0;
return (LRESULT)CreateBrushIndirect(&lb);
}
break;
答案 0 :(得分:0)
好的,让它运转起来。 上面代码的问题是当WM_CTLCOLOREDIT返回系统使用返回的画笔绘制编辑控件时,所以任何完成的绘画都将被删除。 因此,不是返回使用CreateBrushIndirect创建的画笔,而是通过从GetStockObject(NULL_BRUSH)获取它来返回NULL画笔。
Rectangle函数绘制一个矩形。通过使用当前笔并使用当前笔刷填充矩形。 这样才有用。