VC++窗体背景颜色渐变
2007-05-07 16:47
267 查看
新建MFC工程
修改View类的OnDraw方法
void CJBView::OnDraw(CDC* pDC)
{
CJBDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(&rect);
CDC dcBAK;
CBitmap map;
dcBAK.CreateCompatibleDC(pDC);
map.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
CBitmap*poldbmp=dcBAK.SelectObject(&map);
int r1=128,g1=200,b1=200;
int r2=100, g2=55, b2=165;
for(int i=0;i<rect.Width();i++){
int r,g,b;
r = r1 + (i * (r2-r1) / rect.Width());
g = g1 + (i * (g2-g1) / rect.Width());
b = b1 + (i * (b2-b1) / rect.Width());
dcBAK.FillSolidRect(i,0,1,rect.Height(),RGB(r,g,b));
}
//----------绘画
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcBAK,0,0,SRCCOPY);
dcBAK.SelectObject(poldbmp);
}
通过以上方法产生了一个从左向右的渐变的窗体
Remarks:
通过拖拽窗体大小,发现闪烁厉害,以上方法不能解决闪烁问题
对策:给View类添加Add Windows Message handle
增加:WM_ERASEBKGND
BOOL CJBView::OnEraseBkgnd(CDC* pDC)
{
return 1;
}
闪烁问题解决了! ^_^
修改View类的OnDraw方法
void CJBView::OnDraw(CDC* pDC)
{
CJBDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(&rect);
CDC dcBAK;
CBitmap map;
dcBAK.CreateCompatibleDC(pDC);
map.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
CBitmap*poldbmp=dcBAK.SelectObject(&map);
int r1=128,g1=200,b1=200;
int r2=100, g2=55, b2=165;
for(int i=0;i<rect.Width();i++){
int r,g,b;
r = r1 + (i * (r2-r1) / rect.Width());
g = g1 + (i * (g2-g1) / rect.Width());
b = b1 + (i * (b2-b1) / rect.Width());
dcBAK.FillSolidRect(i,0,1,rect.Height(),RGB(r,g,b));
}
//----------绘画
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcBAK,0,0,SRCCOPY);
dcBAK.SelectObject(poldbmp);
}
通过以上方法产生了一个从左向右的渐变的窗体
Remarks:
通过拖拽窗体大小,发现闪烁厉害,以上方法不能解决闪烁问题
对策:给View类添加Add Windows Message handle
增加:WM_ERASEBKGND
BOOL CJBView::OnEraseBkgnd(CDC* pDC)
{
return 1;
}
闪烁问题解决了! ^_^
相关文章推荐
- VC++窗体背景颜色渐变 .
- VC 实现视图区背景颜色渐变填充
- VC 实现视图区背景颜色渐变填充
- 【VC编程技巧】窗体☞3.1利用字体对话框和颜色对话框改变静态标签中字体颜色背景.
- VC 修改窗体背景颜色最简单有效的方法
- VC如何改变编辑框的背景颜色方法
- CSS3实现背景颜色渐变 摘抄
- VC 编辑框 改变背景、字体、文本颜色、长度限制、英文 汉字判断
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- android背景颜色渐变
- 上拉使标题背景颜色渐变
- VC编程中如何设置对话框的背景颜色和静态文本颜色
- 如何改变对话或窗体视窗的背景颜色
- flex 容器填充渐变的背景颜色
- CSS实现DIV层背景颜色渐变
- div背景颜色怎样渐变 css实现div层背景颜色渐变代码
- CSS中背景颜色的渐变
- android Button 切换背景,实现动态按钮和按钮颜色渐变
- 【VC编程技巧】窗体☞3.6以渐变效果载入对话框
- android在xml文件中实现背景或按钮颜色渐变