社区
界面
帖子详情
请教,怎样在矩形区域填充渐变色,就像窗口标题栏
yayafu
2005-08-18 10:46:14
请教,怎样在矩形区域填充渐变色,就像窗口标题栏那样由深到浅,应该有个API函数吧
...全文
471
6
打赏
收藏
请教,怎样在矩形区域填充渐变色,就像窗口标题栏
请教,怎样在矩形区域填充渐变色,就像窗口标题栏那样由深到浅,应该有个API函数吧
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
summer0360
2005-08-20
打赏
举报
回复
mark
请问GradientFill具体怎么调用?
给个2,3句话的例子?
laogong165
2005-08-19
打赏
举报
回复
嘎嘎
kingsundy
2005-08-19
打赏
举报
回复
GradientFill
pomelowu
2005-08-18
打赏
举报
回复
GradientFill
i_noname
2005-08-18
打赏
举报
回复
把矩形分成N个小矩形,用渐变色对各个小矩形逐个填充。
void CProcessCtrl::DrawGradient(HDC pDC,const RECT& rectClient,const int & nMaxWidth) {
RECT rectFill; //显示区域
float fStep; //每一步的幅宽
HBRUSH hBrush; //显示的颜色画刷
int nRed = 0, nGreen=0, nBlue = 0;
float fRefStep = 0.0, fGreenStep=0.0, fBlueStep=0.0;
//得到不同颜色并相减,返回颜色之间的最大差值
nRed = (GetRValue(m_nShadowEndColor)-GetRValue(m_nShadowBeginColor));
nGreen = (GetGValue(m_nShadowEndColor)-GetGValue(m_nShadowBeginColor));
nBlue = (GetBValue(m_nShadowEndColor)-GetBValue(m_nShadowBeginColor));
//使进程条显示的总数 等于最大的颜色差值
int nSteps=max(abs(nRed),max(abs(nGreen),abs(nBlue)));
//确定每一颜色填充多大的矩形区域
//以下两种计算步长方式均成立,视个人喜好而定
//fStep = (float)rectClient.right / (float)nSteps;
fStep = (float)nMaxWidth / (float)nSteps;
//设置每一颜色填充的步数
fRefStep = nRed / (float)nSteps;
fGreenStep = nGreen / (float)nSteps;
fBlueStep = nBlue / (float)nSteps;
nRed = GetRValue(m_nShadowBeginColor);
nGreen = GetGValue(m_nShadowBeginColor);
nBlue = GetBValue(m_nShadowBeginColor);
//绘制颜色渐变的进程条
for(int nOnBand=0 ; nOnBand < nSteps ; nOnBand++)
{
//本质为使用一个一个的小RECT填充客户区,而每次填充使用不同的颜色(BRUSH),从而达到渐变的效果
::SetRect(&rectFill,
//填充矩形区域的左上角x,y和右下角x,y
(int)(nOnBand*fStep),
0,
(int)((nOnBand+1)*fStep),
rectClient.bottom+1);
hBrush = CreateSolidBrush(RGB(nRed + fRefStep*nOnBand,
nGreen + fGreenStep*nOnBand,
nBlue + fBlueStep*nOnBand));
HBRUSH oldBrush = (HBRUSH)::SelectObject(pDC, hBrush);
FillRect(pDC , &rectFill, hBrush);
::SelectObject(pDC, oldBrush);
DeleteObject(hBrush);
}
}
yll1986
2005-08-18
打赏
举报
回复
自己做一个渐变的位图,然后把它导入?哈哈!说笑
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA
请教
怎
GDI
http://blog.csdn.net/byxdaz/article/details/5949590 编程windows图形数据结构mfc任务 图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏幕输出。GDI负责Windows的所有图形输出,包括
前端程序员眼中的 ps,达不到ui 设计的最优,却很实用
前端程序员眼中的 ps,达不到ui 设计的最优,却很实用
博客总目录(2007.11.12 - 2010.4.25)
如果我的学习记录和历程能对你有所帮助, 我非常高兴; 但是 -- "万一" 不是高手、更不是大师, 只是利用工作之余学点东西, 并感觉学得挺吃力. 内容都是写时才会, 难免稚嫩, 所以 "仅供参考" 可不是客套! 有朋友提出需要这么个目录, 所以忐忑列出; 并拜托发现问题及时通知我. 一个拼图工具的制作思路 - 回复 "AlwaysBug" 的问题 将 4 个 Byt...
Qt开发经验(转载)
本文转载于https://qtchina.blog.csdn.net/?type=blog,feiyangqingyun的博客,感谢大佬的经验分享。 默认QtCreator是单线程编译,可能设计之初考虑到尽量不过多占用系统资源,而现在的电脑都是多核心的,默认msvc编译器是多线程编译的不需要手动设置,而对于其他编译器,需要手动设置才行。 方法一:在每个项目的构建设置中(可以勾选一个 shadow build 的页面地方)的build步骤,make arguments增加一行 -j16 即可,此设置会保
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章