下面那个代码 我主要是想判断鼠标是否处在文本框的位置 我是用If lpclassname = "ThunderTextBox" Then
MsgBox ""
End If来判断的 为什么lpclassname是 "ThunderTextBox"的时候 不弹出msgbox 下面是代码Option Explicit
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpclassname As String, ByVal nMaxCount As Long) As LongPrivate Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Type POINTAPI
x As Long
y As Long
End Type
Private Const MAX_PATH = 256
Dim PosPoint As POINTAPI
Dim aName As String
Dim lHwnd As Long
Dim lRet As Long
Dim lpclassname As String
Dim chwnd As Long
Dim rh As Long
Dim c As String
Dim a As Control
Private Sub Form_Load()
Timer1.Interval = 300
End SubPrivate Sub Timer1_Timer()
lpclassname = Space(255)
aName = Space$(MAX_PATH)
GetCursorPos PosPoint
lHwnd = WindowFromPoint(PosPoint.x, PosPoint.y)
lRet = GetWindowText(lHwnd, aName, MAX_PATH)
aName = Replace$(aName, Chr$(0), "")
GetClassName lHwnd, lpclassname, 255
If lpclassname = "ThunderTextBox" Then
MsgBox ""
End If
Print lpclassname
End Sub
MsgBox ""
End If来判断的 为什么lpclassname是 "ThunderTextBox"的时候 不弹出msgbox 下面是代码Option Explicit
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpclassname As String, ByVal nMaxCount As Long) As LongPrivate Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Type POINTAPI
x As Long
y As Long
End Type
Private Const MAX_PATH = 256
Dim PosPoint As POINTAPI
Dim aName As String
Dim lHwnd As Long
Dim lRet As Long
Dim lpclassname As String
Dim chwnd As Long
Dim rh As Long
Dim c As String
Dim a As Control
Private Sub Form_Load()
Timer1.Interval = 300
End SubPrivate Sub Timer1_Timer()
lpclassname = Space(255)
aName = Space$(MAX_PATH)
GetCursorPos PosPoint
lHwnd = WindowFromPoint(PosPoint.x, PosPoint.y)
lRet = GetWindowText(lHwnd, aName, MAX_PATH)
aName = Replace$(aName, Chr$(0), "")
GetClassName lHwnd, lpclassname, 255
If lpclassname = "ThunderTextBox" Then
MsgBox ""
End If
Print lpclassname
End Sub
解决方案 »
- 如何实现把SQL中的image类型数据读取出来加载到picture或者image中显示
- 试着做外挂,问个问题,怎么取游戏中血量,魔法量等内存地址?
- 问问高手:directX 能干啥?
- 1000分问题领分 Greaitm(夜草) 200/300/1000分
- 如何把网页源文件保存到文件中?
- 在VB中能用DBF的命令(pack)彻底删除DBF表中记录?
- 如何得到MSHFlexGrid中有数据的总行数
- 一个遗留已久的win2k打印设置问题(100分)
- 一个关于Api关闭计算机函数的问题.
- 请教“微软亚洲技术中心 VB技术支持”,这个ADO 的VFP 问题又是如何啊?
- 我编的打印图片的原码-为何点击打印选择文件后打印机没反应?
- 请教一条语句意思
估计是别人的text控件
你说这话什么意思呢???
如果是自己的,就好办些,有些东西不需要API
如果是别人的程序中的控件,就需要
我说明白了么?
如果是按钮的话可以Dim a As Control
For Each a In Me.Controls
If a.Caption = "" Then Print a.Name
Next 但是text没有标题 我就是想判断一下鼠标位置是不是text 仅此而已
你至今不肯告诉大家text是VB里面的还是外部程序的
我已经告诉你二者在编程的时候差别很大
dbcontrols 可能咱俩有点误会,不过也很感谢你
然后用timer监控WindowFromPoint