作者:朱金灿
来源:
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);}