首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

如何把焦点发送到其他窗口下

2013-01-02 
怎么把焦点发送到其他窗口上?Private Declare Function GetForegroundWindow Lib user32 () As LongPriv

怎么把焦点发送到其他窗口上?
Private Declare Function GetForegroundWindow Lib "user32" () As Long

Private Declare Function GetFocus Lib "user32" () As Long

Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal Hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal Hwnd As Long) As Long
Dim hWnd1 As Long

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()
Label1.AutoSize = True
Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
If Me.Hwnd <> GetForegroundWindow Then

 hWnd1 = GetForegroundWindow() '得到活动窗口的句柄
 Label1.Caption = getCaption(hWnd1)
 End If
 
End Sub
'根据窗口句柄得到该窗口的标题
Function getCaption(Hwnd As Long)
 Dim hWndlength As Long, hWndTitle As String, A As Long
 hWndlength = GetWindowTextLength(Hwnd)
 hWndTitle = String$(hWndlength, 0)
 A = GetWindowText(Hwnd, hWndTitle, (hWndlength + 1))
 getCaption = hWndTitle
End Function


'获得当前焦点所在控件句柄
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, TID, False
End If
End Function




按钮的代码没填写,我不会写
我想用一个timer判断当前窗体是不是form1,如果是的话则不记录句柄,如果不是则记录句柄。然后点击按钮发送按键到句柄记录的控件。

各位大大要给力啊!!!
[解决办法]
'声明
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'代码
SetForegroundWindow 句柄

热点排行