MFC RoundRect、FillRect等函数如何设置颜色

清泛编译
RoundRect 颜色:
//定义一个画刷
CBrush Brush(RGB(0,0,0));

//用画刷填充矩形
pDC->FillRect (&rectEdit, &Brush);

FillRect(FillSolidRect) 颜色:
CPen mypen, *oldpen;
mypen.CreatePen(PS_SOLID, 1, m_clrFrame);
oldpen = pDC->SelectObject(&mypen);

CPoint point(7, 7);
pDC->RoundRect(rectEdit, point);

pDC->SelectObject(oldpen);



CDC中FillRect与FillSolidRect的区别:

在网上找FillRect与FillSolidRect的时候通常都会看到下面的一句话。

FillSolidRect与CDC::FillRect类似,FillSolidRect只能使用固体色(由COLORREF参数决定)。但FillRect带有画刷,因此可以为矩形填充固体色、抖动色、阴影或使用调色板。FillRect通常比FillSolidRect慢。

所以我在想那为什么还要用FillRect呀,全用FillSolidRect不就得了,但是悲剧发生了。

注意:调用FillSolidRect时,以前用SetBkColor设置的背景色,被设置为clr指定的颜色。

就是说你的背景色已经变成了FillSolidRect设置的颜色了。也许正常是看不出来的。但当以再用画笔画PS_DOT类的线时,你会发现你虚线原来的空白地方变成了FillSolidRect设置的颜色了。用FillSolidRect时一定要注意。

来自:http://blog.csdn.net/oliuzuoliang12/article/details/17604209

MFC RoundRect FillRect

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部