Получить 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 и передать имя заголовка в качестве второго параметра.