Private Sub picCurve_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Static sngOldX As Single Static sngOldY As Single Dim i As Long Dim Index As Long Dim vntStream As clsSCStream Dim vntFormula As clsSCFormula
RaiseEvent MouseMove(Button, Shift, X, Y)
picCurve.DrawMode = vbInvert If Len(vntChartTicker.Stream.Text) > 0 Then vntChartTickerLine.SelectObject picCurve
If (X < vntChartDrawPlot.Left) Or _ (X > vntChartDrawPlot.Left + vntChartDrawPlot.Width) Or _ (Y < vntChartDrawPlot.Top) Or _ (Y > vntChartDrawPlot.Top + vntChartDrawPlot.Height) Then
ReleaseCapture
GoTo ExitHandle Else SetCapture picCurve.hwnd End If
Index = Int(((X - vntChartDrawPlot.Left) * vntChartCurves.MaxPointCount) / vntChartDrawPlot.Width)
Set vntStream = New clsSCStream Set vntFormula = New clsSCFormula
For i = 1 To vntStream.WordCount - 1 vntFormula.Expression = fTransWord(vntStream.Word(i), Index) vntStream.Word(i) = vntFormula.Value Next i lblMessage.Caption = GetTimeFormat(Index) & vntStream.Format '写标签 lblMessage.Top = Y + 10
If X + lblMessage.Width + 10 > vntChartBackPlot.Width Then lblMessage.Left = X - lblMessage.Width - 10 Else lblMessage.Left = X + 10 End If lblMessage.Visible = True
非常急需哦
Static sngOldX As Single
Static sngOldY As Single
Dim i As Long
Dim Index As Long
Dim vntStream As clsSCStream
Dim vntFormula As clsSCFormula
RaiseEvent MouseMove(Button, Shift, X, Y)
picCurve.DrawMode = vbInvert
If Len(vntChartTicker.Stream.Text) > 0 Then
vntChartTickerLine.SelectObject picCurve
If bChartTicker Then
picCurve.Line (sngOldX, vntChartDrawPlot.Top)- _
(sngOldX, vntChartDrawPlot.Top + vntChartDrawPlot.Height)
picCurve.Line (vntChartDrawPlot.Left, sngOldY)- _
(vntChartDrawPlot.Left + vntChartDrawPlot.Width, sngOldY)
lblMessage.Visible = False
bChartTicker = False
End If
If (X < vntChartDrawPlot.Left) Or _
(X > vntChartDrawPlot.Left + vntChartDrawPlot.Width) Or _
(Y < vntChartDrawPlot.Top) Or _
(Y > vntChartDrawPlot.Top + vntChartDrawPlot.Height) Then
ReleaseCapture
GoTo ExitHandle
Else
SetCapture picCurve.hwnd
End If
Index = Int(((X - vntChartDrawPlot.Left) * vntChartCurves.MaxPointCount) / vntChartDrawPlot.Width)
Set vntStream = New clsSCStream
Set vntFormula = New clsSCFormula
vntStream.Text = vntChartTicker.Stream.Text
vntStream.Sep = vntChartTicker.Stream.Sep
For i = 1 To vntStream.WordCount - 1
vntFormula.Expression = fTransWord(vntStream.Word(i), Index)
vntStream.Word(i) = vntFormula.Value
Next i
lblMessage.Caption = GetTimeFormat(Index) & vntStream.Format '写标签
lblMessage.Top = Y + 10
If X + lblMessage.Width + 10 > vntChartBackPlot.Width Then
lblMessage.Left = X - lblMessage.Width - 10
Else
lblMessage.Left = X + 10
End If
lblMessage.Visible = True
sngOldX = X
sngOldY = Y
picCurve.Line (sngOldX, vntChartDrawPlot.Top)- _
(sngOldX, vntChartDrawPlot.Top + vntChartDrawPlot.Height)
picCurve.Line (vntChartDrawPlot.Left, sngOldY)- _
(vntChartDrawPlot.Left + vntChartDrawPlot.Width, sngOldY)
bChartTicker = True
RaiseEvent PlotMove(Button, Shift, Index)
End If
ExitHandle:
picCurve.DrawMode = vbCopyPen
End Sub