下面那个代码 我主要是想判断鼠标是否处在文本框的位置 我是用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

解决方案 »

  1.   

    text控件的mousemove 事件试试
      

  2.   

    我倒不是说非得用这种方法,我只是不明白lpclassname = "ThunderTextBox"了 为什么不弹出msgbox
      

  3.   

    [Quote=引用 2 楼 dbcontrols 的回复:]
    估计是别人的text控件
    你说这话什么意思呢???
      

  4.   

    控制自己的程序跟控制别人的是不一样的
    如果是自己的,就好办些,有些东西不需要API
    如果是别人的程序中的控件,就需要
    我说明白了么?
      

  5.   

    我知道你就是这种想法 其实你想错了 我写这个程序的目的是看到有人,在百度知道提问 如何获取控件的name
    如果是按钮的话可以Dim a As Control
    For Each a In Me.Controls
    If a.Caption = "" Then Print a.Name
    Next 但是text没有标题 我就是想判断一下鼠标位置是不是text 仅此而已
      

  6.   

    Trim(Replace(lpclassname, Chr(0), ""))= "MSHFlexGridWndClass"
      

  7.   

    我哪想错了?
    你至今不肯告诉大家text是VB里面的还是外部程序的
    我已经告诉你二者在编程的时候差别很大
      

  8.   

    非常感谢7楼
    dbcontrols 可能咱俩有点误会,不过也很感谢你
      

  9.   

    先用spy++看看那控件的类名
    然后用timer监控WindowFromPoint
      

  10.   

    还要用GetCursorPos获取鼠标位置