7,763
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Type POINTAPI
x As Long
y As Long
End Type
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Option Explicit
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim point As POINTAPI
GetCursorPos point
Text1.Text = point.x & " " & point.y
End Sub
Option Explicit
Private m_IsDrag As Boolean
Private m_StartX As Long
Private m_StartY As Long
Private m_EndX As Long
Private m_EndY As Long
Private Sub Form_Load()
Me.AutoRedraw = True
Me.ScaleMode = vbPixels
Me.BackColor = vbWhite
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
m_IsDrag = True
m_StartX = X
m_StartY = Y
m_EndX = X
m_EndY = Y
Me.DrawMode = vbXorPen
Me.DrawStyle = vbDot
Me.ForeColor = vbWhite
Me.Line (m_StartX, m_StartY)-(X, Y)
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If m_IsDrag Then
Me.Line (m_StartX, m_StartY)-(m_EndX, m_EndY)
Me.Line (m_StartX, m_StartY)-(X, Y)
m_EndX = X
m_EndY = Y
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (Button = vbLeftButton) And m_IsDrag Then
m_IsDrag = False
Me.Line (m_StartX, m_StartY)-(m_EndX, m_EndY)
Me.DrawMode = vbCopyPen
Me.DrawStyle = vbSolid
Me.ForeColor = vbBlack
Me.Line (m_StartX, m_StartY)-(X, Y)
End If
End Sub
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Sub Form_Load()
Dim pt As POINTAPI
GetCursorPos pt
Debug.Print pt.X, pt.Y
End Sub