下面的代码将绘制一个渐变填充矩形。我从vbcity.com的这个帖子稍微修改了一下。

将其放入模块中:

Public Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long

Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Public Sub gdiDrawGradient( _

ByVal hdc As Long, _

ByRef rct As RECT, _

ByVal lEndColor As Long, _

ByVal lStartColor As Long, _

ByVal bVertical As Boolean)

Dim lStep As Long

Dim lPos As Long, lSize As Long

Dim bRGB(1 To 3) As Integer

Dim bRGBStart(1 To 3) As Integer

Dim dR(1 To 3) As Double

Dim dPos As Double, d As Double

Dim hBr As Long

Dim tR As RECT

LSet tR = rct

If bVertical Then

lSize = (tR.Bottom - tR.Top)

Else

lSize = (tR.Right - tR.Left)

End If

lStep = lSize 255

If (lStep < 3) Then

lStep = 3

End If

bRGB(1) = lStartColor And &HFF&

bRGB(2) = (lStartColor And &HFF00&) &H100&

bRGB(3) = (lStartColor And &HFF0000) &H10000

bRGBStart(1) = bRGB(1): bRGBStart(2) = bRGB(2): bRGBStart(3) = bRGB(3)

dR(1) = (lEndColor And &HFF&) - bRGB(1)

dR(2) = ((lEndColor And &HFF00&) &H100&) - bRGB(2)

dR(3) = ((lEndColor And &HFF0000) &H10000) - bRGB(3)

For lPos = lSize To 0 Step -lStep '

' Draw bar

If bVertical Then

tR.Top = tR.Bottom - lStep

Else

tR.Left = tR.Right - lStep

End If

If tR.Top < rct.Top Then

tR.Top = rct.Top

End If

If tR.Left < rct.Left Then

tR.Left = rct.Left

End If

hBr = CreateSolidBrush((bRGB(3) * &H10000 + bRGB(2) * &H100& + bRGB(1)))

FillRect hdc, tR, hBr

DeleteObject hBr

' Adjust colour '

dPos = ((lSize - lPos) / lSize)

If bVertical Then

tR.Bottom = tR.Top

bRGB(1) = bRGBStart(1) + dR(1) * dPos

bRGB(2) = bRGBStart(2) + dR(2) * dPos

bRGB(3) = bRGBStart(3) + dR(3) * dPos

Else

tR.Right = tR.Left

bRGB(1) = bRGBStart(1) + dR(1) * dPos

bRGB(2) = bRGBStart(2) + dR(2) * dPos

bRGB(3) = bRGBStart(3) + dR(3) * dPos

End If

Next lPos

End Sub

要进行测试,请将此代码添加到表单中:

Private Sub Command1_Click()

Dim r As RECT

r.Left = 10

r.Top = 10

r.Right = 100

r.Bottom = 150

Call gdiDrawGradient(Me.hdc, r, vbRed, vbBlue, True)

End Sub

多边形颜色渐变填充C语言,vb6:用渐变填充多边形相关推荐

  1. 计算机图形学——多边形填色(多边形颜色渐变填充)

    1.问题描述与算法思想 问题描述 多边形颜色渐变填充,设计实现多边形的填充类,设置顶点序列,调用填充函数.通过建立多边形的桶表和边表的数据,按照算法步骤依次扫描填充.调用设计实现的多边形填充类,对所绘 ...

  2. fill颜色填充c语言,R语言给图形填充颜色的操作(polygon函数)

    1. 使用polygon进行纯色填充 # polygon函数介绍 polygon(x, y = NULL, density = NULL, angle = 45, border = NULL, col ...

  3. 多边形扫描转换算法(C语言实现)

    多边形扫描转换算法(C语言实现) 原理不赘述 原理可跳转至该文章 ET边表 AET链表 实现 该算法我实在计算机图形学的书上看到了,但是遗憾的是看懂了,并没有算法实现.该算法的优势很是很明显的对于种子 ...

  4. Woed渐变背景怎么设置?word渐变填充在哪里?

    Word渐变背景怎么设置?Word文档大家都知道吧,用的也比较多,它是办公软件家族的一员,它最常用到的地方就是写文章,很多人写文章都是在这个文档上面写的,word渐变填充在哪里? 说到word渐变填充 ...

  5. 计算机word设置渐变填充,在word2013中设置渐变填充效果的详细设置步骤

    软件安装:装机软件必备包             装机软件必备包官方下载 关于电脑装机必须的软件,比如windows office系列办公软件.网页浏览器.杀毒软件.安全防护软件.刻录软件.压缩软件. ...

  6. R语言ggplot2可视化气泡图:无填充色的气泡图、自定义填充色的气泡图

    R语言ggplot2可视化气泡图:无填充色的气泡图.自定义填充色的气泡图 目录 R语言ggpl

  7. Gradify - 提取图片颜色,创建响应式的 CSS渐变

    被请求的HTTP对象之间的延迟会有一个时间段,这个期间网页看起来不完整.Gradify 可以分析出图像中4个最常见的颜色,创建一个梯度(或纯色)作为图片占位符.Gradify 可以在在任何图像发现最突 ...

  8. cass块参照怎么改颜色_【干货】CASS自定义图斑填充技巧

    原标题:[干货]CASS自定义图斑填充技巧 经常有小伙伴向我求助 CASS中如何定义图斑填充的符号? 自定义"水浇地"图斑的填充符号要怎么操作? 完成图斑绘制的图形,想要给各类图斑 ...

  9. CSS设置背景颜色 拼接 (一半黑一半白) 条纹 渐变

    CSS设置背景颜色 拼接 (一半黑一半白) 条纹 渐变 首先下面是用到的css样式 线性渐变 这个属性我还说不明白 我就简单的使用一下 有兴趣的搜索CSS线性渐变就OK background-imag ...

最新文章

  1. autoware中的交通灯识别(八)
  2. 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(八)指数积(PoE)建立机械臂模型及正运动...
  3. python中strip函数_让你整明白python strip函数妙用
  4. Linux权限控制命令
  5. 集合类-HashSet去重
  6. 时空快照模型snapshots
  7. ustc小道消息20211227
  8. Approximate Nearest Neighbors.接近最近邻搜索
  9. redis服务器防止入侵,加ip,密码限制
  10. 云计算的安全顾虑中不透明性影响云落地
  11. [tldk][dpdk][dev] TLDK--基于dpdk的用户态协议栈传输层组件简单调研
  12. PS如何导入3dlut调色预设文件步骤方法
  13. 苹果系统安装服务器打印机,如何在MAC系统下安装打印机驱动
  14. 未来十年计算机语言,随便聊聊中国未来十年热门的十大编程语言使用趋势
  15. Python 散点图的数据分析
  16. java 微信文章评论点赞_微信文章留言评论刷赞怎么弄?如何给微信文章
  17. 嘿,飞哥(F.R.E.C.O)!不一般的云联盟
  18. 网站动态背景线条跟随鼠标移动,吸附鼠标效果
  19. 数据库进阶·如何针对所有用户数据中没有的数据去加入随机的数据-蜻蜓Q系统用户没有头像如何加入头像数据-优雅草科技kir
  20. NOI银河英雄传说(并查集)

热门文章

  1. 3种漂亮的登录表单页面css3+html5模板
  2. 高分一号、二号样例数据下载
  3. 【MMDetection3D】环境搭建,使用PointPillers训练测试可视化KITTI数据集
  4. 猿创征文|Hexo+Github搭建完全免费个人博客详细教程
  5. 最近学习太焦虑,如何戒骄戒躁,静下心来
  6. 抖音是一款什么样的短视频软件?
  7. 基于python的可视化成绩分析
  8. netty初使用——实现http及https代理服务器
  9. Android平板能装fydeos,在 FydeOS 中如何安装安卓应用 - FydeOS 帮助手册
  10. 工作流调度系统Apache DolphinScheduler介绍和设计原理