作者:朱金灿

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


相关文章:

  • 2021-06-24
  • 2021-08-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-05
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
  • 2021-04-08
  • 2021-12-24
相关资源
相似解决方案