求个简单的VB获取当前聚焦窗口的句柄代码

求个简单的VB获取当前聚焦窗口的句柄代码,第1张

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

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long

Dim hAcive As Long

Private Sub Form_Load()

hAcive = 0

End Sub

Private Sub Timer1_Timer()

Dim a As Long

a = GetForegroundWindow

If a <灶桐胡>Me.hWnd Then hAcive = a

End Sub

'隐拦hAcive 就是当前拥有聚焦窗口的句柄

'返回窗口句柄 whWnd 所轮虚属进程 ID

Private Function WindowProcessID(ByVal whWnd As Long) As Long

Dim lpdwProcessId As Long

GetWindowThreadProcessId whWnd, lpdwProcessId

WindowProcessID = lpdwProcessId

End Function

Private Declare Function FindWindow Lib "user32" Alias "简团FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_SETTEXT = &HC

'//声明

Private Sub Command4_Click() '向记事本写入文字

Dim hwnd As Long, Thwnd As Long

Shell "判燃notepad.exe", 2 '打开一个记事本,将它最小化

hwnd = FindWindow("Notepad", "无标题 - 记事本") '得到记事本句柄

Thwnd = FindWindowEx(hwnd, 0, "Edit", vbNullString) '得到记拦冲橘事本句柄(就是我们写字的那里)

SendMessage Thwnd, WM_SETTEXT, 0, ByVal SS '向记事本写入文字

setfucos hwnd

End Sub

1、打开VB软件,在窗体上面添加两个文本框,如下图所示

2、分别设置两个文本框的属性,清空文本框的内容,掘者信如下图所示。

3、在窗体上,添加两个命令按钮,如下图所示。

4、分别设置两个文本框的属性,分别命名为“左”、判轮“右”,如下图所示。

5、双击名称为“左”的命令按钮,编辑其代码,如下图所示。

6、双击名称为“右”的命令按钮,编辑其代码,如下图所示。

7、运行程序,点击命令按钮,观察文本框中的焦点变化,如下图所示。嫌早(为了方便观看,先点击“右”命令按钮,再点击“左”命令按钮)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8240645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存