社区
界面
帖子详情
请教,怎样在矩形区域填充渐变色,就像窗口标题栏
yayafu
2005-08-18 10:46:14
请教,怎样在矩形区域填充渐变色,就像窗口标题栏那样由深到浅,应该有个API函数吧
...全文
486
6
打赏
收藏
请教,怎样在矩形区域填充渐变色,就像窗口标题栏
请教,怎样在矩形区域填充渐变色,就像窗口标题栏那样由深到浅,应该有个API函数吧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
自己做一个渐变的位图,然后把它导入?哈哈!说笑
MFC重绘
标题栏
、菜单栏并更改状态栏背景色
你可以重写OnNcPaint()函数,使用ExtTextOut()函数来绘制
标题栏
的文字,或者使用CreateRoundRectRgn()创建一个圆角
矩形
区域来实现自定义形状的
标题栏
。 菜单栏的重绘相对简单,只需要在OnPaint()中处理即可。你可能...
C#实现 填充
矩形
随机画
矩形
鼠标绘图 色彩变换矩阵 全局变形图形 漂亮的C#登录
窗口
(动画效果) 路径 另存为 绘制颜色渐变图形 绘制线条 绘制椭圆 绘制扇形 绘制抛物线 绘制
矩形
绘制弧线 绘制多边形和折线 绘制RectangleF结构指定的
矩形
画直线 画笔 创建笔 呈现图像 “字体”对话框安徽机电职业技术学院陈伟
填充
矩形
随机画
矩形
鼠标绘图 色彩变换矩阵 全局变形图形 漂亮的C#登录
窗口
(动画效果) 路径 另存为 绘制颜色渐变图形 绘制线条 绘制椭圆 绘制扇形 绘制抛物线 绘制
矩形
绘制弧线 绘制多边形和折线 ...
MoreWindows界面编程第三篇 异形
窗口
1
本文将深入探讨一个特殊的界面设计技术——异形
窗口
(又称非
矩形
窗口
),这是【标题】"MoreWindows界面编程第三篇 异形
窗口
1"所涉及的核心知识点。通过【描述】中的示例,我们可以看到这个程序是如何利用位图来实现...
自动填充功能实现-- 实例源码
标题中的“自动填充功能实现”通常指的是在软件开发中,特别是在Web应用或移动应用中,为用户输入框设计的一种便捷功能。它能够根据用户输入的字符,动态地提供可能的匹配选项,帮助用户快速完成输入,提高用户体验...
Android设置虚线、圆角、渐变
在Android开发中,为UI元素添加虚线、圆角和渐变效果是常见的需求,...这样,我们就成功地在Android中实现了虚线、圆角和渐变效果。通过灵活运用`Shape Drawable`,可以创造出各种各样的UI样式,满足不同的设计需求。
界面
15,977
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章