何时我能获得VB6中当前窗口/窗体的hWnd?
答案 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