Получить hWnd текущего окна / формы в VB6?

Ho получаю ли я hWnd текущего окна / формы в VB6?

3 ответов


Если вы находитесь на форме:Me.hWnd. Если вы не знаете, какая форма является текущей форме: Screen.ActiveForm.hWnd


использование Windows API,GetForegroundWindow() получит дескриптор самого верхнего окна независимо от того, из какого приложения он и GetActiveWindow() получите дескриптор приложения активное окно. The 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 и передать имя заголовка в качестве второго параметра.