如何在VB6中获取当前窗口形式的hWnd?
如果你在窗体上: Me.hWnd
. 如果你不知道哪个窗体是当前窗体。 Screen.ActiveForm.hWnd
使用Windows API, GetForegroundWindow()
将获得最上面窗口的句柄,无论它来自哪个应用程序,并且 GetActiveWindow()
会得到 您申请的 活动窗口。 的 Declare
语句。
Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Declare Function GetActiveWindow Lib "user32.dll" () As Long
调用任何一个函数都会像上面所说的那样返回一个窗口句柄。
我已经很久没有使用VB6了,但这是我记得的。
你要打开API查看器, 它应该在开始菜单中VB6条目的周围. 当你打开它时,你要选择win32api.txt,你会得到一个所有Win32 API函数的列表。 这是最简单的方法,不会把函数签名弄乱。 复制并粘贴函数声明到你的一个VB6模块中。
我总是 "作弊",只是通过标题名称来寻找我的窗口,而不是用GetWindow循环浏览所有可用的窗口。 如果你对这个没意见,你想使用FindWindow,并把标题名作为第二个参数传递。
Declare PtrSafe Function GetForegroundWindow Lib "user32.dll" () As Long
Declare PtrSafe Function GetActiveWindow Lib "user32.dll" () As Long
这些代码可以很好的替代自动 祭祀+标签 在Windows 10中,当 祭祀+标签 不像Windows 7和更早的版本那样提供固定窗口。
谢谢用户65628