渐变 2
来源:互联网 发布:域名怎么看 编辑:程序博客网 时间:2024/05/21 09:02
绘制渐变色背景
添加WM_ERASEBKGND的消息相应函数,在函数体如下:
BOOL OnEraseBkgnd(CDC *pDC)
{
CRect rc;
pDC->GetClipBox(&rc);
DrawGradient(pDC->GetSafeHdc(),rc,RGB(255,255,255),RGB(244,128,128),1);
return TRUE;
}
添加绘背景色函数。
void DrawGradient(HDC pDC,const RECT&rect,COLORREF begin,COLORREF end,const int&width)
{
RECT rcstep;
HBRUSH br;
int n,m;
float step = 0.0;
int nred = 0, ngreen = 0, nblue = 0;
float red = 0.0, green = 0.0, blue = 0.0;
nred = (GetRValue(end)-GetRValue(begin));
ngreen = (GetGValue(end)-GetGValue(begin));
nblue = (GetBValue(end)-GetBValue(begin));
step = (float)abs(rect.top-rect.bottom)/(float)width;
red = nred/(float)step;
green = ngreen/(float)step;
blue = nblue/(float)step;
nred = GetRValue(begin);
ngreen = GetRValue(begin);
nblue = GetRValue(begin);
for(int start = 0; start <= step;start++)
{
n=min((int)(rect.top+start*width),rect.bottom);
m=min((int)(rect.top+(start+1)*width),rect.bottom);
::SetRect(&rcstep,rect.left,n,rect.right+1,m);
br = CreateSolidBrush(RGB(nred + red*start,ngreen + green*start,nblue + blue*start));
HBRUSH oldbr = (HBRUSH)::SelectObject(pDC,br);
FillRect(pDC,&rcstep,br);
::SelectObject(pDC,oldbr);
DeleteObject(br);
}
}
- 渐变 2
- CoreGraphics 渐变(2)
- canvas (2) 上色、渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- 渐变
- Quartz 2D之线性渐变和径向渐变
- css滤镜效果---渐变2
- 渐变:线性渐变、径向渐变
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 傲游3的广告过滤自定义规则【Mark一下】对CSS语法学习还是挺不错了~~可定义站点样式
- 渐 变
- Android layout xml总结
- IOS成长之路-解析xml数据
- 渐变 2
- java string举例说明1
- java string举例说明2
- java string举例说明3
- 对象引用与对象的区别
- java IO举例说明1
- [案例分析]抠抠族:省钱达人的“葵花宝典”
- 苦其心志,劳其筋骨
- g729源码分析-8-内存更新打包