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

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


person C. Ross    schedule 15.02.2010    source источник


Ответы (3)


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

person C-Pound Guru    schedule 15.02.2010

Используя Windows API, GetForegroundWindow() получит дескриптор самого верхнего окна независимо от того, из какого приложения оно создано, а GetActiveWindow() получит дескриптор активного окна вашего приложения. Вам понадобятся Declare утверждения:

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

Вызов любой функции вернет дескриптор окна, как описано выше.

person Community    schedule 15.02.2010

Прошло много времени с тех пор, как я использовал VB6, но это то, что я помню:

Вы захотите открыть средство просмотра API, которое должно находиться в меню «Пуск» рядом с записью VB6. Когда вы откроете его, вы хотите выбрать win32api.txt, и вы получите список всех функций Win32 API. Это самый простой способ не испортить сигнатуры функций. Скопируйте и вставьте объявление функции в один из ваших модулей VB6.

Я всегда «обманывал» и просто искал свое окно по имени заголовка, вместо того, чтобы перебирать все доступные окна с помощью GetWindow. Если вас это устраивает, вы хотите использовать FindWindow и передать имя подписи в качестве второго параметра.

person Dave    schedule 15.02.2010