社区
界面
帖子详情
请教,怎样在矩形区域填充渐变色,就像窗口标题栏
yayafu
2005-08-18 10:46:14
请教,怎样在矩形区域填充渐变色,就像窗口标题栏那样由深到浅,应该有个API函数吧
...全文
513
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
打赏
举报
回复
自己做一个渐变的位图,然后把它导入?哈哈!说笑
【笔记】QT分块传输文件 【memecpy(array.data(),total_array.data(),LOADSIZE)】报错崩溃
这里本来想用tcpsocket实际试验一下,不过后来发现这样还要再写个服务器有点麻烦,这里直接验证利用QBtyteArrary分小块array发,对方收到后一直append到recv_arrary里,最后可以还原文件,已经验证jpg,xlsx都可以,注意小块的array也用append添加内容,而不可以用memecpy(array.data(),total_array.data(),LOADSIZ...
Expected BEGIN_ARRAY but was BEGIN_OBJECT
使用Gson解析的时候,遇到这个问题: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 21 path $.data 其实就是我的Bean对象建错了. 其中的data应该是一个O
pysimdjson API详解:Parser、Object、Array核心类使用指南
pysimdjson是一个基于simdjson项目的Python绑定库,提供了快速高效的JSON解析能力。本文将详细介绍pysimdjson中Parser、Object和Array三个核心类的使用方法,帮助开发者快速掌握这个高性能JSON解析库的基本操作。 ## 项目概述 pysimdjson通过SIMD指令集加速JSON解析过程,比传统的Python JSON解析库具有更高的性能。项目结构清
array、vector中data()成员函数的用法
以array容器为例,根据上面图片的描述,data()返回的是首元素的地址(裸指针)。这个对vector也成立。但list和deque有序容器没有提供这个成语函数。 可见,data()成员函数只有array、vector提供了。个人猜测,因为只有这两者容器的内存分布是连续的。 其他容器的特点可以参考这篇文章。 代码示例: #include <iostream> #include <vector> #include <array> #include <list>.
辨析CANoe系统变量中的Array、Data、String和Struct
辨析CANoe系统变量中的Array、Data、String和Struct
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章