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

时间:2010-02-15 14:11:22

标签: vb6 hwnd

何时我能获得VB6中当前窗口/窗体的hWnd?

4 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:9)

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

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

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

答案 2 :(得分:3)

自从我使用VB6以来已经很长时间了,但这就是我记得的:

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

我总是“欺骗”,只是按标题名称查找我的窗口,而不是使用GetWindow循环遍历所有可用的窗口。如果你对此没问题,你想使用FindWindow并将标题名称作为第二个参数传递。

答案 3 :(得分:0)

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

Alt + Tab 执行时,这些代码非常适合替换Windows 10中的自动 Alt + Tab 不提供Windows 7和更早版本的固定窗口

谢谢user65628