作者:朱金灿
来源:http://blog.csdn.net/clever101
Win32 API并没对应的CDC类的FillSolidRect接口的API函数。今天需要使用Win32把这个接口实现,随手写了个:
HDC hdc = NULL;
// 获取DC句柄这步忽略
HBRUSH hOldBsh = SelectBrush(hdc,GetStockObject(WHITE_BRUSH));
::Rectangle(hdc,0,0,cx,cy);
::SelectObject(bmpIt->first,hOldBsh);
后来想这样实现估计不是最高效的,看了MFC的源码,发现是这样实现的:
void CDC::FillSolidRect(int x, int y, int cx, int cy, COLORREF clr)
{
ASSERT_VALID(this);
ASSERT(m_hDC != NULL);
::SetBkColor(m_hDC, clr);
CRect rect(x, y, x + cx, y + cy);
::ExtTextOut(m_hDC, 0, 0, ETO_OPAQUE, &rect, NULL, 0, NULL);
}