在VB6中获取当前窗口窗体的hWnd?

问题描述 投票:6回答:4

如何在VB6中获取当前窗口形式的hWnd?

vb6 hwnd
4个回答
14
投票

如果你在窗体上: Me.hWnd. 如果你不知道哪个窗体是当前窗体。 Screen.ActiveForm.hWnd


9
投票

使用Windows API, GetForegroundWindow() 将获得最上面窗口的句柄,无论它来自哪个应用程序,并且 GetActiveWindow() 会得到 您申请的 活动窗口。 的 Declare 语句。

Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Declare Function GetActiveWindow Lib "user32.dll" () As Long 

调用任何一个函数都会像上面所说的那样返回一个窗口句柄。


3
投票

我已经很久没有使用VB6了,但这是我记得的。

你要打开API查看器, 它应该在开始菜单中VB6条目的周围. 当你打开它时,你要选择win32api.txt,你会得到一个所有Win32 API函数的列表。 这是最简单的方法,不会把函数签名弄乱。 复制并粘贴函数声明到你的一个VB6模块中。

我总是 "作弊",只是通过标题名称来寻找我的窗口,而不是用GetWindow循环浏览所有可用的窗口。 如果你对这个没意见,你想使用FindWindow,并把标题名作为第二个参数传递。


0
投票
Declare PtrSafe Function GetForegroundWindow Lib "user32.dll" () As Long
Declare PtrSafe Function GetActiveWindow Lib "user32.dll" () As Long 

这些代码可以很好的替代自动 祭祀+标签 在Windows 10中,当 祭祀+标签 不像Windows 7和更早的版本那样提供固定窗口。

谢谢用户65628

© www.soinside.com 2019 - 2024. All rights reserved.