我不确定我是否用言语说出来。最好的方法是用图像显示它。我正在尝试填充矩形,同时反转其中的文本颜色。就像edit
控件一样:
所以这是一个绘图代码(从WM_PAINT
调用):
//Erase background
::FillRect(hDC, &rcClient, ::GetSysColorBrush(COLOR_WINDOW));
//Draw text
::DrawText(hDC, text, text.size(), &rc,
DT_LEFT | DT_TOP | DT_EDITCONTROL | DT_NOPREFIX | DT_SINGLELINE);
//Draw highlighted rect & invert text
HGDIOBJ hOldBrush = ::SelectObject(hDC, ::GetSysColorBrush(COLOR_HIGHLIGHT));
::PatBlt(hDC, rcDrawFrame.left, rcDrawFrame.top, rcDrawFrame.Width(), rcDrawFrame.Height(), DSTINVERT);
::SelectObject(hDC, hOldBrush);
但由于某种原因,背景矩形显示为黑色,我知道COLOR_HIGHLIGHT
在此系统上是蓝色的:
那我在这里做错了什么?