Win32 API实现CDC类的FillSolidRect接口

作者:朱金灿

来源: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);
}


原文地址:https://www.cnblogs.com/lanzhi/p/6470646.html