VB 6.0 modal forms + activeX dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
prototype
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 02.11.2005 (Ср) 19:51

VB 6.0 modal forms + activeX dll

Сообщение prototype » 02.11.2005 (Ср) 20:21

Такая задача:

Есть 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


для того, чтоб она не отбирала ни у кого фокус.

В случае модальной формы это не работает.
Как быть? :?:

Спасибо.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 120

    TopList