(窗体中一个timer,两个label)
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long,ByVal hWndInsertAfter As Long,ByVal x As Long,ByVal y As Long,ByVal cx As Long,ByVal cy As Long,ByVal wFlags As Long) As Long Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function WindowFromPointXY Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long,ByVal yPoint As Long) As Long Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetFocus Lib "user32" () As Long Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long,ByVal lpEnumFunc As Long,ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long,ByVal lpClassName As String,ByVal nMaxCount As Long) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long,lpdwProcessId As Long) As Long Private Declare Function AttachThreadInput Lib "user32" (ByVal idAttach As Long,ByVal idAttachTo As Long,ByVal fAttach As Long) As Long Private Type POINTAPI x As Long y As Long End Type Private Sub Form_Load() SetWindowPos Me.hwnd,-1,240,100,conSwpNoActivate Or conSwpShowWindow End Sub Private Sub Timer1_Timer() Dim xy As POINTAPI Dim ahwnd As Long GetCursorPos xy ahwnd = WindowFromPointXY(xy.x,xy.y) Label1.Caption = "鼠标所在的控件类型:" & ClassName(ahwnd) Label2.Caption = "获得焦点的控件类型:" & ClassName(GetHwnd) End Sub Public Function GetHwnd() As Long Dim hwnd As Long Dim PID As Long Dim TID As Long Dim hWndFocus As Long hwnd = GetForegroundWindow If hwnd Then TID = GetWindowThreadProcessId(hwnd,PID) AttachThreadInput App.ThreadID,TID,True GetHwnd = GetFocus AttachThreadInput App.ThreadID,False End If End Function Private Function ClassName(nHwnd As Long) As String Dim str As String str = Space(255) GetClassName nHwnd,str,255 ClassName = str End Function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。