VB怎么样让鼠标的x和y坐标显示在界面上我指定的一个位置?当我鼠标移动的时候他即时更新x,y坐标.

当我鼠标移动的时候他即时更新x,y坐标.对VB不熟悉,希望那位达人帮说下建立什么控件加什么代码具体点教育教育一下我。
截取鼠标坐标后是我需要的是当我按一我定义的一个键后把X和Y数值赋予在第一个TEXT文本框里,鼠标的坐标更新在标签上) 按我定义的键后自动写入text1,然后下次按的时候写在第二个text里。是这个意思!

第1个回答  2011-05-26
方法1:此方法仅限于窗体内判断
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = X & " " & Y
End Sub
方法2:
如果出窗体的话 就用到api函数了 增加一个Timer控件
Dim p As POINTAPI
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'lpPoint-鼠标坐标会储存到这个结构中
Private Sub Form_Load()
Timer1.Interval = 20
End Sub

Private Sub Timer1_Timer()
GetCursorPos p
Cls
Text1.Text = p.x & " " & p.y
End Sub追问

截取鼠标坐标后是我需要的是当我按一我定义的一个键后把X和Y数值赋予在第一个TEXT文本框里,然后开始记录第二个文本框,以此类推。(鼠标的坐标更新在标签上) 按我定义的键后自动写入text1,然后下次按的时候写在第二个text里。是这个意思!

追答

Dim a As Integer
Dim p As POINTAPI
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
'lpPoint-鼠标坐标会储存到这个结构中
'------------------------------传说中的分割线-----------------------------------
'form1的KeyPreview属性设置成 True
'text1的Enabled属性设置成False
'创建数组控件
'----------------------------------end--------------------------------

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 97 Then '这里以A为例子
GetCursorPos p
Cls
If a < 2 Then
Text1(a).Text = p.x & " " & p.y
a = a + 1
Else
Text1(0).Text = p.x & " " & p.y
a = 1
End If
End If
End Sub
这样总是你需要的了把

追问

无效赋值啊,咋办?我复制的也不行,

本回答被提问者采纳
第2个回答  2011-06-05
'窗体上一个标签:Label1,两个文本框Text1,Text2,复制一下代码。

Dim Cs% '鼠标按键次数
Private Sub Form_Click() '窗体单击事件
Cs = Cs + 1
If Cs Mod 2 = 1 Then '奇数次时显示在第一个文本框
Text1.Text = Label1.Caption
Text2.Text = ""
Else '偶数次时显示在第二个文本框
Text2.Text = Label1.Caption
End If
End Sub
'------------------------------------------
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) '鼠标在窗体上移动
Label1.Caption = "X:" & X & " _ Y:" & Y '标签1上显示
End Sub
相似回答