Display-GradientFill()

本文通过实例介绍了如何使用GDI API GradientFill()来绘制渐变背景,对比了传统方法的计算量,展示了GradientFill()的优势和使用方法,包括TRIVERTEX和GRADIENT_RECT结构的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文尝试从一个简单的例子入手,来讲述GDI API GradientFill()的妙用。

问题:

如何给自绘菜单加上绚丽的背景

 

这个问题如果是在PC上讨论,那么几乎没什么价值。因为PC的内存较大,CPU的速度也较快,所以可以采用任何你想要的方式绘制。比如说下面就是一种很常见的思路:
1.得到菜单矩形区域和上下文设备。
2。根据矩形区域的大小,起始色和最终色计算每一像素的颜色,从而创建响应的画笔在该矩形的顶端和低端画一条线。
下面是源代码:

void CCustomMenu::DrawBk(CDC *pDC, CRect rect, COLORREF cr1,COLORREF cr2)
{
int r1 = GetRValue(cr1);//Red color1
int g1 = GetGValue(cr1);//Green color1
int b1 = GetBValue(cr1);//blue color1
int r2 = GetRValue(cr2);//red color2
int g2 = GetGValue(cr2);//green color2
int b2 = GetBValue(cr2);//blue color2
float dr = ((float)(r2 - r1))/(float)(rect.Width());
float dg = ((float)(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值