显示隐藏VG标尺(XRuler、YRuler)

maomaoqishibuhuai 2008-11-07 10:01:10
在VG绘图里面,其标尺已经被作成TBL文件了,那么你就可以自定义自己的标尺来使用,首先,要使用标尺,那么就要先看一下VB60的例子:标尺;其设计界面如下:



原理就是在FORM里面放两个VG插件,一个用放在顶端用来运行X标尺(dat\XRuler.tbl),一个是放在左边,用来运行Y标尺(dat\YRuler.tbl)然后把主画面VG插件的事件挂靠里面控制(dat\XRuler.tbl与dat\YRuler.tbl),其整个标尺运行的代码如下:

Private Sub ChangeRuler()’触发XRuler.tbl与YRuler.tbl里自定义的标尺变化函数

vgctrl2.Execute "ChangeRuler()"

vgctrl3.Execute "ChangeRuler()"

End Sub

Private Sub Form_Load()

s = vgctrl1.Execute("return SystemParams.DefaultPath")’获得当前VG的默认系统目录路径

vgctrl2.Run s + "xruler.tbl"’获得当前VG的里面的Xruler.tbl文件路径,并运行于上边的VG插件

vgctrl3.Run s + "yruler.tbl"’获得当前VG的里面的Yruler.tbl文件路径,并运行于左边的VG插件

vgctrl1.Design ""’主VG画图新建一张图

vgctrl2.ActiveSheet.SetPropertyValue "cursheet", vgctrl1.ActiveSheet’设主画面的当前页于Xruler

vgctrl3.ActiveSheet.SetPropertyValue "cursheet", vgctrl1.ActiveSheet’设主画面的当前页于Yruler

ChangeRuler’触发XRuler.tbl与YRuler.tbl里自定义的标尺变化函数

vgctrl1.MoveSheet’图形漫游、手抓图

End Sub

Private Sub Form_Resize()’对窗口的Resize事件进行调整左边与右边的高与宽、主画面的大小

vgctrl1.Left = vgctrl3.Left + vgctrl3.Width

vgctrl1.Top = vgctrl2.Top + vgctrl2.Height

vgctrl2.Width = Me.ScaleWidth - vgctrl3.Width

vgctrl3.Top = vgctrl1.Top

vgctrl3.Height = Me.ScaleHeight

vgctrl1.Width = Me.ScaleWidth - vgctrl3.Width

vgctrl1.Height = Me.ScaleHeight - vgctrl2.Height

End Sub

Private Sub vgctrl1_OnMouseMove(ByVal x As Double, ByVal y As Double) ’用来触发标尺的自定义的鼠标移动事作,以使标尺上的那个小黑三角形进行移动。

vgctrl2.Execute "MouseMove()"

vgctrl3.Execute "MouseMove()"

End Sub

Private Sub vgctrl1_OnOrgChanging()’当主画面里面的原点变化时,改变标尺状态

ChangeRuler

End Sub

Private Sub vgctrl1_OnZoomChange(ByVal Zoom As Double) ’当主画面的Zoom变化时,改变标尺状态

ChangeRuler

End Sub

标尺的变化只涉及到三个事件:OnMouseMove、OnOrgChanging、OnZoomChange。其对标尺的支持,在其他计算机语言环境、WEB上也是如此对这几个事件进行控制标尺。

下载请点击:http://www.visual-graph.com/
...全文
131 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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