注册 登录
编程论坛 VB6论坛

做画图控件,画坐标轴,实现坐标轴,具体请看内容

vb_cainiao 发布于 2014-04-21 09:09, 603 次点击
本人想做一个画图控件,用的是PictureBox做容器画坐标轴以及曲线,具体效果如下:
只有本站会员才能查看附件,请 登录

图片框中能显示文字吗,还有就是鼠标滚动如何实现坐标轴移动,求大神帮助。。
6 回复
#2
vb_cainiao2014-04-22 10:34
没大神回吗?求指导啊,给个思路就行,我现在是图片框画线的方法画坐标轴,但是鼠标轴拖动比较难实现,能给个思路吗,或者用别的方法
#3
lowxiong2014-04-22 11:11
你还是自己动动脑子吧,这个应该不难。
#4
vb_cainiao2014-04-22 14:26
额,本人太菜,能给个思路吗,PictureBox来做可以吗,但是坐标我都是画线画出来的,时间刻度是用文本框来的,但是下面的问题就是如何在鼠标滚轮的时候实现坐标轴的移动,整体都要移动。
只有本站会员才能查看附件,请 登录
#5
lowxiong2014-04-22 16:39
要想使vb响应滚轮有两个方法,一是使用消息钩子,第二种方法是使用combobox控件来响应,这个比较简单。下面简单做个,你做参考(新建一工程,添加一个combobox控件,一个picturebox控件,拷贝下列代码,即可见到滚轮效果)

Dim startPos As Long                   '起始位置

Private Sub DrawXY()
  '画坐标
  Dim s As Integer, i As Integer
  s = Picture1.ScaleWidth / 10
  Picture1.Cls
  For i = 0 To 9
    Picture1.Line (i * s + startPos + 5, 5)-(i * s + startPos + 5, Picture1.ScaleHeight - 20), vbBlue
    Picture1.CurrentX = i * s + startPos - 3: Picture1.CurrentY = Picture1.ScaleHeight - 15: Picture1.Print i
  Next
  Picture1.Refresh
End Sub

Private Sub Combo1_Click()
  '响应滚轮
  startPos = startPos + Val(Combo1) * 5
  DrawXY
  Combo1.ListIndex = 1
  Combo1.SetFocus
End Sub

Private Sub Form_Load()
  Combo1.AddItem -1
  Combo1.AddItem 0
  Combo1.AddItem 1                     '响应鼠标滚轮控件付初值
  Combo1 = 0
  Me.ScaleMode = 3
  Picture1.ScaleMode = 3
  startPos = 0
  DrawXY
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Combo1.SetFocus
End Sub

只有本站会员才能查看附件,请 登录
#6
vb_cainiao2014-04-22 16:55
好的,万分感谢,之前我试过用Print 写坐标标签,不知道怎么没效果,你的就可以,点个赞,我再试着写我的坐标控件
#7
夜的影子2014-04-22 20:05
使用combobox控件来响应鼠标滚轮?很有趣的尝试。
1