Есть ActiveX dll с неким прогресс баром расположенном на форме. Вызывается форма как модальная, т.е. frmMain.Show 1, т.к. в ActiveX Modeless формы не вписываются. Есть ли способ вызвать эту форму на экран, при этом не потеряв фокус у вызывающей программы?
Пример: прога начинает качать фаил и зовет мою ActiveX с прогресс баром на некой форме. Форма выплывает, но фокус на нее не переходит.
В случае Моделесс формы я делал так:
- Код: Выделить всё
Public Declare Function SetWindowPos Lib "user32" _
(ByVal HWND As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
для того, чтобы форма всегда оставалась поверх остальных окон
и
- Код: Выделить всё
Public Declare Function ShowWindowAsync Lib "user32" (ByVal HWND As Long, ByVal nCmdShow As Long) As Boolean
ShowWindowAsync frmMain.HWND, SW_SHOWNOACTIVATE
для того, чтоб она не отбирала ни у кого фокус.
В случае модальной формы это не работает.
Как быть?
Спасибо.