CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

怎样把某个区域填充成渐变色?

楼主xming076(虚名)2002-01-05 11:21:59 在 VC/MFC / 基础类 提问

问题点数:30、回复次数:15Top

1 楼xming076(虚名)回复于 2002-01-05 13:44:06 得分 0

有没有人会解决这个问题?Top

2 楼explorer007(KKcat)回复于 2002-01-05 14:17:36 得分 2

画线啊,以渐变色一直画过去不就好了吗?Top

3 楼swqs(小虾米)回复于 2002-01-05 14:29:07 得分 0

渐变色是什么意思?Top

4 楼fz_zhou(vcfan)回复于 2002-01-05 14:37:18 得分 2

你可以改变调色板来做到Fade   in   and   Fade   out!Top

5 楼xming076(虚名)回复于 2002-01-05 19:16:41 得分 0

我需要简短的代码例子Top

6 楼idseaboy(seaboy)回复于 2002-01-05 20:01:28 得分 2

我做课设时用过,我是用了个位图(用photoshop作的),把它选进DC,再画上去的,你参考一下。代码就不写了,找本书就有的。呵呵。Top

7 楼idseaboy(seaboy)回复于 2002-01-05 20:02:54 得分 0

要不就画区域,渐变的画,我也用了,是不是很菜的做法?见笑见笑。Top

8 楼nj_zhulin(e路飞翔)回复于 2002-01-06 02:07:18 得分 2

随机取出刷子,在WM_TIME中在指定区域着色。不知道行不行?Top

9 楼dysxq()回复于 2002-01-06 04:02:49 得分 2

有个API,   GradientFill,可以实现像标题栏一样的渐变效果,具体用法查MSDNTop

10 楼xming076(虚名)回复于 2002-01-06 09:29:30 得分 0

dysxq说的最接近我的要求,我试试。Top

11 楼xming076(虚名)回复于 2002-01-07 18:10:07 得分 0

好象参数比较多,能简单点就好了。Top

12 楼bladeboy(刀锋)回复于 2002-01-07 18:46:04 得分 0

不要画线,最好用画点,画线要不断改变画笔,容易有问题Top

13 楼DoItFreely(Freely)回复于 2002-01-07 19:27:12 得分 0

要是简单的水平或者竖直渐变,自己分割成n个小矩形,FillSolidRect()就搞掂了Top

14 楼dysxq()回复于 2002-01-08 01:01:09 得分 20

COLORREF crTop =   ::GetSysColor(COLOR_ACTIVECAPTION);  
  COLORREF crBottom =   ::GetSysColor(27);   //   COLOR_GRADIENTACTIVECAPTION  
   
  TRIVERTEX tv[2];  
  GRADIENT_RECT       rectGrad;  
   
  tv[0].x             =   rect.left;  
  tv[0].y             =   rect.top;  
  tv[0].Red         =   (WORD)GetRValue(crTop)   <<   8;  
  tv[0].Green     =   (WORD)GetGValue(crTop)   <<   8;  
  tv[0].Blue       =   (WORD)GetBValue(crTop)   <<   8;  
  tv[0].Alpha     =   0x0000;  
   
  tv[1].x             =   rect.Width();  
  tv[1].y             =   rect.Height();  
  tv[1].Red         =   (WORD)GetRValue(crBottom)   <<   8;  
  tv[1].Green     =   (WORD)GetGValue(crBottom)   <<   8;  
  tv[1].Blue       =   (WORD)GetBValue(crBottom)   <<   8;  
  tv[1].Alpha     =   0x0000;  
   
  rectGrad.LowerRight =   1;  
  rectGrad.UpperLeft =   0;  
   
  ::GradientFill(dc.m_hDC,   tv,   2,   &rectGrad,   1,   GRADIENT_FILL_RECT_H);  
  Top

15 楼xming076(虚名)回复于 2002-01-08 12:24:20 得分 0

先谢dysxq了  
  小的门,上菜...Top

相关问题

  • 请教,怎样在矩形区域填充渐变色,就像窗口标题栏
  • 如何用渐变色填充矩形?谢谢!
  • 如何在一个弧形里填充渐变色?
  • API绘渐变色区域源码,高手来解释下!
  • 用api怎么填充一个区域!
  • 如何用FillRect填充一个区域?
  • 怎样绘制一个渐变色的矩形区域,就象 win2000/98 的标题栏那样???UP有分!!
  • 全屏渐变色算法
  • 求教:渐变色问题
  • 如何用指定颜色填充任意形状区域?

关键词

  • 区域
  • tv
  • rect

得分解答快速导航

  • 帖主:xming076
  • explorer007
  • fz_zhou
  • idseaboy
  • nj_zhulin
  • dysxq
  • dysxq

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo