vb picturebox上画坐标系,在坐标系内画点,画满20个后,picturebox.cls,再次调用画坐标函数,不对,求帮

picturebox上自定义了一个坐标系,以picturebox右下角为坐标原点,把X轴分为20等分,在每一等分上画一个点,Y值为数组值画完20个点后,picturebo... picturebox上自定义了一个坐标系,以picturebox右下角为坐标原点,把X轴分为20等分,在每一等分上画一个点,Y值为数组值

画完20个点后,picturebox.cls,再调用画坐标系的函数,再次画点,结果画出来的坐标系就不一样了

怎么回事呢?
Sub DrawZbx() ’画坐标系和坐标系上的虚线函数
w = picShow.ScaleWidth
h = picShow.ScaleHeight
Dim i As Integer
picShow.Scale (picShow.ScaleWidth, picShow.ScaleHeight)-(0, 0) ‘定义坐标原点为右下角
picShow.AutoRedraw = True

picShow.Line (500, 500)-(w - 500, 500)
picShow.Line (500, 500)-(500, h)
picShow.Line (w - 500, 500)-(w - 500, h)
picShow.Line (500, h)-(w - 500, h)

For i = 0 To 10
picShow.Line (w - 430, i * (h - 500) / 10 + 500)-(w - 500, i * (h - 500) / 10 + 500)
picShow.CurrentX = w
picShow.CurrentY = i * (h - 500) / 10 + 500
picShow.Print i * 50
Next i

For i = 1 To 19
picShow.DrawStyle = 2
picShow.Line (i * (w - 1000) / 20 + 500, 500)-(i * (w - 1000) / 20 + 500, h), &HC0C0C0
Next i

For i = 1 To 9
picShow.DrawStyle = 2
picShow.Line (w - 500, i * (h - 500) / 10 + 500)-(500, i * (h - 500) / 10 + 500), &HC0C0C0
Next i

End Sub

第一次调用画坐标的函数 w=7635,h=3915都是正值

picturebox.cls后,再次调用画坐标的函数,w=-7635,h=-3915,怎么回事呢

恳求帮忙呀
展开
 我来答
百度网友bdb9803
2012-10-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
w和h定义为全局变量,其赋值语句和picShow.Scale 坐标系设置都移到Form_load中,这些只需要设置一次,不用每次调用子程序都设置一次。
Dim w, h
Private Sub Form_Load()
w = picShow.ScaleWidth
h = picShow.ScaleHeight
picShow.Scale (picShow.ScaleWidth, picShow.ScaleHeight)-(0, 0) '定义坐标原点为右下角
picShow.AutoRedraw = True
End Sub
Sub DrawZbx()
picShow.Line (500, 500)-(w - 500, 500)
picShow.Line (500, 500)-(500, h)
。。。。。。。。。。。。
网海1书生
科技发烧友

2012-10-24 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26231

向TA提问 私信TA
展开全部
当你把PictureBox的右下角设为坐标原点时,picShow.ScaleWidth和picShow.ScaleHeight确实是负数的。之所以第一次运行正常,是因为你的w和h是在设定坐标系之前赋值的,所以第一次运行DrawZbx的时候它是正数的,第二次运行DrawZbx的时候,由于这时候坐标系已经改了,所以w和h就变为负数了。
所以我的意见也和楼上的一样,就是把w和h定义为全局变量,其赋值语句和picShow.Scale 坐标系设置都移到Form_load中,这些只需要设置一次,不用每次调用子程序都设置一次。坐标系设定后,你用cls是不会把坐标系清除掉的,所以坐标系不用重复设置!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式