2010-02-15 2 views

ответ

13

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

2

Это было долгое время, так как я использовал VB6, но это то, что я помню:

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

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

8

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

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

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

+0

+1. Очевидно, что текущее активное окно не может быть формой. – MarkJ

+0

+1 Хороший ответ. –

Смежные вопросы