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

VB怎么样让鼠标的x和y坐标显示在界面上我指定的一个位置?当我鼠标移动...
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-鼠标坐标会储存...

VB获取鼠标在当前窗体的坐标
采用窗体的MouseMove事件来获取鼠标坐标是可以的。如下我在文本框中显示当前鼠标的坐标程序,鼠标移动,坐标自动更新,只需要一个文本框控件,代码如下:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Text = "当前鼠标坐标为,X:" & X & "Y:...

如何获得vb中鼠标在窗口的坐标
方法一: 直接用 MouseDown事件 举例:(这种方法获取的是点的位置在窗体中,却该对象有MouseDown事件才行,其坐标值为所在容器的相对坐标值)Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 Then Cls Print "X:"; X, "Y:"; Y En...

如何在vb里制作鼠标移动时显示鼠标位置
在窗体上放个标签label1程序运行的时候移动鼠标,在鼠标的位置上显示出鼠标的坐标来。代码如下:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Label1.Caption = "x=" & X & "y" & Y Label1.Left = X Label1.Top = Y End Sub ...

怎样用 vb 取得鼠标在窗口中的坐标?
思路是:当在窗体中单击,且松开鼠标键后,在Text1,Text2中分别显示鼠标在窗体中的位置的X,Y的值 Dim strSF As Boolean Private Sub Form_Load()strSF = False End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)strSF = True End Sub Priv...

vb 如何点击某按钮,鼠标移动到窗体内某位置?
如果不嫌麻烦的话,可以这样:1、读取窗体内部宽度W1、高度H1。2、获取当前屏幕分辨率Xp、Yp。3、读取需要跳转的X、Y坐标。4、X1=(W1\/Xp)*x 5、求的Y1 6、执行光标设置命令,就可以设置到你窗体的指定位置了

vb 控制鼠标按要求移动。
首先用建立一个标准Exe程序'把窗体名称,设定为frmMain'在窗体上建立一组文本框数组,名称为txtMsg'txtMsg(0) -- 显示鼠标左键按下的次数'txtMsg(1) -- 显示鼠标中键按下的次数'txtMsg(2) -- 显示鼠标右键按下的次数'txtMsg(3) -- 显示鼠标按下的总次数 '然后建立一个Module,并输入以下...

vb如何控制鼠标移动。例如在text1、text2中分别输入x、y坐标。单击按钮...
Private Declare Function SetCursorPos Lib "user32" ( _ByVal x As Long, _ByVal y As Long _) As Long Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Private ...

VB.net中怎么将鼠标移动到相对某个窗体的某个位置
一种方法是模拟移动鼠标移动,一种是获取窗口里的控件直接输入

vb获取鼠标在屏幕上的坐标并显示文本框1中
MyPoint) '调用函数,获取屏幕鼠标坐标'Debug.Print "X=" & Str(MyPoint.X) & " and " & "Y=" & Str(MyPoint.Y)Print "当前横坐标:" & Str(MyPoint.X)Print "当前纵坐标:" & Str(MyPoint.Y)End Sub Private Sub Timer1_Timer()ClsPrintCursorPosEnd Sub望采纳。。。

相似回答