
正文
vb.net获取控件坐标 vb获取鼠标坐标
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在VB.net中怎么获取 鼠标在屏幕中的坐标
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐标声明
Private Declare Function ScreenToClient Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐标声明
Private Structure POINTAPI '声明坐标变量
Public x As Int32 '声明坐标变量为32位
Public y As Int32 '声明坐标变量为32位
End Structure
'以上是声明部分
'以下是窗口部分
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '用时钟控件来取坐标,窗口上放个Timer组件,Enabled为允许,周期为10到100毫秒均可
Dim P As POINTAPI '声明坐标变量
Dim xx, yy '声明转换要用到的变量
GetCursorPos(P) '获取鼠标在屏幕中的位置
ScreenToClient(Me.Handle.ToInt32, P) '转换为本窗体的坐标
xx = P.x.ToString '把X转换成能显示到文本框的字符串格式
yy = P.y.ToString '把Y转换成能显示到文本框的字符串格式
TextBox1.Text = xx + "和" + yy '文本框的内容为X坐标和Y坐标
End Sub
相关问答
Q1: VB.NET想用GetWindowRECT获取某窗口的坐标,但测试结果是L,T,R,B显示都是0,0,0,0
很简单,原因有二。第一,VB里long是32位,但是VB.NET里是64位,Dim ksWND As Integer才对。第二,VB在API里默认传址,而VB.NET默认传值,所以API里要添加Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,添加"ByRef" lpRect As RECT) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,byref lpRect As RECT) As Integer
Private Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ksWND As integer
Dim ksTitle As String
Dim winS As RECT
If TextBox1.Text "" Then
ksTitle = TextBox1.Text
ksWND = FindWindow(vbNullString, ksTitle)
GetWindowRect(ksWND, winS)
MsgBox("左上角坐标(" winS.Left "," winS.Top ")" vbCrLf "右下角坐标(" winS.Right "," winS.Bottom ")" vbCrLf "窗口高" winS.Bottom - winS.Top "窗口宽" winS.Right - winS.Left)
Else
MsgBox("请填写窗口名称")
End If
End Sub
Q2: VB获取坐标
你需要的东西有点类似图片搜索,或者像素搜索。有点像按键精灵里的功能,只不过vb中需要自己写这个函数。
这里只说下原理。
首先,需要红点和蓝点的像素信息集合,可以自己抓各个像素点的颜色值,并排列成矩阵,也可以截取红点和蓝点的图片,用程序读取这个像素信息矩阵。
然后,将这个矩阵在你的这张图片中比对,找到后,取左上角顶点坐标偏移红点或蓝点矩阵长宽的一半即可得出结果,如果图片在你自己的程序里,后台抓取也是可以得。
不过说了这么多也不知道你自己能否实现= =。。。
如果你找得到别人写的图片搜索的函数也可以直接借用。或者可以搜下“大漠插件”,记得里面有现成的图片搜索函数。
Q3: vb.net 怎样获取鼠标单击点的坐标
通过窗体的MouseDown事件的e.X和e.Y属性获取。通过e.Location属性获取Point类型的坐标。
下面的代码示例使用 Location 属性跟踪鼠标左键单击,并绘制一系列直线段作为对用户输入的响应。如果隐藏窗体然后重新显示它,此示例不保留已绘制的线段,该代码为简单起见而被省略了。
Dim FirstPoint As Point
Dim HaveFirstPoint As Boolean = False
Sub Form1_MouseDownDrawing(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
If HaveFirstPoint Then
Dim g As Graphics = Me.CreateGraphics()
g.DrawLine(Pens.Black, FirstPoint, e.Location)
HaveFirstPoint = False
Else
FirstPoint = e.Location
HaveFirstPoint = True
End If
End Sub
Q4: vb.net 怎么判断文本框 失去焦点 ? 怎么在代码中定义控件的坐标
(1)失去焦点,拖一个文本框到页面上,选择该文本框,查看一下该文本框的事件,里面应该有文本框的焦点事件,自己查查看。
(2)如果是winform的话在控件的属性里应该有坐标的属性项可以填写。web的话需要html的布局来确定该文本框的位置。
vb.net获取控件坐标的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb获取鼠标坐标、vb.net获取控件坐标的信息别忘了在本站进行查找喔。






