VB6 鼠标事件和与 Lines 的交互

VB6 Mouse events and interaction with Lines

我正在用VB6做一个方程绘图器,我已经构建了一段代码来显示鼠标指针在图片框上时的坐标(图片框是显示曲线的地方)。

我已经成功地做到了这一点,并且鼠标的坐标显示正常,直到鼠标被放置在轴上(由线函数构造)。指针在坐标轴上显示的坐标明显错误

当鼠标指针在y轴上时,x值不是0,而是某个随机数。 当鼠标指针在 x 轴上时,y 值不是 0,而是某个随机数。

坐标显示在状态栏上。下面是可能会帮助你帮我解决这个问题的代码。

下面是在状态栏上显示坐标的代码:

Private Sub picGraph_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
StatusBar1.Panels(1).Text = "x: " & X & " - y: " & Y

End Sub

下面是构建轴的代码:

Public Sub Form_Activate()

Dim xmin As Single
Dim xmax As Single
Dim Dx As Single
Dim ymin As Single
Dim ymax As Single
Dim i As Integer


'set default bounds and Dx

xmin = -10
xmax = 10
ymin = -10
ymax = 10
Dx = 0.1

'scale graph to default bounds

picGraph.Scale (xmin, ymax)-(xmax, ymin)

'draw graph axis

picGraph.Cls
picGraph.Line (xmin, 0)-(xmax, 0), vbRed
picGraph.Line (0, ymin)-(0, ymax), vbRed

For i = 0 To xmin Step -1
    picGraph.Line (i, -0.25)-Step(0, 0.5), vbBlue
Next i
For i = 0 To xmax
    picGraph.Line (i, -0.25)-Step(0, 0.5), vbBlue
Next i
For i = 0 To ymin Step -1
    picGraph.Line (-0.25, i)-Step(0.5, 0), vbBlue
Next i
For i = 0 To ymax
        picGraph.Line (-0.25, i)-Step(0.5, 0), vbBlue
Next i

End Sub

顺便说一句:当鼠标指针在正在绘制的曲线上时,鼠标坐标没有问题。

如能深入了解为什么鼠标在轴上时会出现混乱,我们将不胜感激。

显示给您的数字是用工程符号写的。因此,与其显示 0.002,不如显示为 2E-3。 如果您更改 StatusBar1.Panels(1).Text = "x: " & X & " - y: " & Y 以在其中包含格式,您可能会发现它更接近您的需要。所以它会像

StatusBar1.Panels(1).Text = "x: " & format$(X,"0.00") & " - y: " & format$(Y,"0.00")