6

如何在 VB6 中获得当前窗口/窗体的 hWnd?

4

3 回答 3

16

如果您在表格上: Me.hWnd。如果您不知道当前表单是哪个表单: Screen.ActiveForm.hWnd

于 2010-02-15T14:29:04.873 回答
9

使用 Windows API,GetForegroundWindow()无论它来自哪个应用程序,都将获取最顶层窗口的句柄,并将获取应用程序的活动窗口GetActiveWindow()的句柄。您将需要的声明:Declare

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

调用任一函数都将返回一个如上所述的窗口句柄。

于 2010-02-15T14:34:36.217 回答
3

很久没用VB6了,我记得是这样的:

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

我总是“作弊”,只是通过标题名称查找我的窗口,而不是使用 GetWindow 遍历所有可用的窗口。如果您对此没意见,您想使用 FindWindow 并将标题名称作为第二个参数传递。

于 2010-02-15T14:24:32.677 回答