关于封闭区间填充颜色

ZOU_SEAFARER 2009-02-19 07:36:46
有段时间没有来csdn逛水了,有问题了,借机会和大家见见

此函数就是任意封闭区间填充颜色的函数,不过前提条件必须是这ScaleMode = 3
有没有办法把使用自定义的坐标填充任意封闭区间颜色呢?封闭的颜色已知


Me.ScaleMode = 3
Me.Circle (100, 100), 13, vbWhite
n = paint(Me.hdc, 100, 100, vbBlue, vbWhite)


Public Function paint(hdc As Long, x As Long, y As Long, _
Paintcol As Long, Bordercol As Long) As Long
Dim hBrush As Long
Dim hBackBrush As Long
Dim n As Long
hBrush = CreateSolidBrush(Paintcol)
hBackBrush = SelectObject(hdc, hBrush)
paint = ExtFloodFill(hdc, x, y, Bordercol, FLOODFILLBORDER)
n = DeleteObject(SelectObject(hdc, hBackBrush))
End Function
...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZOU_SEAFARER 2009-02-28
  • 打赏
  • 举报
回复
这段时间比较的忙,问题已经解决,谢谢Tiger_Zhao老战友

Call paint(Me.hdc, ScaleX(100, Me.ScaleMode, vbPixels), ScaleY(100 - SCREEN_Y, Me.ScaleMode, vbPixels), vbBlue, vbWhite)
ZOU_SEAFARER 2009-02-20
  • 打赏
  • 举报
回复
Tiger_Zhao 谢谢啦, I TRY
Tiger_Zhao 2009-02-20
  • 打赏
  • 举报
回复
做好坐标转换就可以了
Private Sub Form_Load()
Me.AutoRedraw = True
Me.WindowState = vbMaximized
End Sub

Private Sub Form_Resize()
Me.ScaleMode = vbUser
Me.Scale (0, SCREEN_Y)-(SCREEN_X, 0)
Me.Cls
Me.Circle (100, 100), 13, vbWhite
Call paint(Me.hdc, ScaleX(100, Me.ScaleMode, vbPixels), ScaleY(100 - SCREEN_Y, Me.ScaleMode, vbPixels), vbBlue, vbWhite)
End Sub
mfkinfo 2009-02-20
  • 打赏
  • 举报
回复
Tiger_Zhao出手就是高啊
Soyokaze 2009-02-20
  • 打赏
  • 举报
回复
多谢楼主,让我学到了一个新的API--ExtFloodFill。以前还真没碰到过。
ZOU_SEAFARER 2009-02-19
  • 打赏
  • 举报
回复
补充一下
屏幕分辨率为1024 * 268
新坐标系
const SCREEN_Y = 960
const SCREEN_X = 720
frmShow.Scale (0, SCREEN_Y)-(SCREEN_X, 0)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧