·绘制渐变色的问题·

reigod 2001-03-09 04:20:00
1.在一个矩型区域内直线式的渐变色绘制。(双色或多色)
2.在一个圆环区域内顺时针式的渐变色绘制。(双色或多色)
有实现的API函数或CDC成员函数吗?
如果没有,请高手写个例子或给个思路。先谢过了!
...全文
200 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamedragon 2001-03-10
  • 打赏
  • 举报
回复
那要知道从一种颜色到另一种颜色的渐变过程,就是中间色的生成。具体怎么生成我没试过,但你可以试试RGB分量分别插值变化(同时变化,比如RGB(255, 0, 255)- RGB(0, 255, 255),中间色就是RGB(128, 128, 255))
gamedragon 2001-03-10
  • 打赏
  • 举报
回复
生成渐变色的最简单的例子,颜色256种,从c1渐变到c2,效果还马马虎虎

void CreatePalette(COLORREF c1, COLORREF c2)
{
int r1, g1, b1, r2, g2, b2;
RGBQUAD *p = lpbi->bmiColors;
r1 = GetRValue(c1);
g1 = GetGValue(c1);
b1 = GetBValue(c1);
r2 = GetRValue(c2);
g2 = GetGValue(c2);
b2 = GetBValue(c2);
float r, g, b;
r = (r2-r1)/256.0f;
g = (g2-g1)/256.0f;
b = (b2-b1)/256.0f;
for(int i = 0; i < 256; i++)
{
p[i].rgbRed = (int)(r1+r*i);
p[i].rgbGreen = (int)(g1+g*i);
p[i].rgbBlue = (int)(b1+b*i);
}
}
xyzboat 2001-03-09
  • 打赏
  • 举报
回复
没有现成的:(
http://www.vckbase.com/article/bitmap/0007.htm
http://www.vckbase.com/document/bitmap/index.html

参考一下了.

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧