【发布时间】:2011-01-17 00:14:12
【问题描述】:
如何在 VB6 中获取当前窗口/窗体的 hWnd?
【问题讨论】:
如何在 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 并将标题名称作为第二个参数传递。
【讨论】: