powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Форма в Viste не хочет "поверх всех".
2 сообщений из 2, страница 1 из 1
Форма в Viste не хочет "поверх всех".
    #35989938
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все перепробовал.
Код: plaintext
1.
2.
3.
SetWindowPos Form1.hwnd, HWND_TOPMOST,  0 ,  0 ,  0 ,  0 , SWP_SHOWWINDOW
SetForegroundWindow Form1.hwnd
    SetWindowPos Me.hwnd, HWND_TOPMOST, Me.CurrentX, Me.CurrentY, Me.Width, Me.Height, SWP_SHOWWINDOW
    SetWindowPos Me.hwnd, HWND_TOPMOST,  0 ,  0 ,  0 ,  0 , SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
Собственно в XP/2003 проблемы вообще нет, она возникает в Vista/2008

Суть: виртуальный принтер, по окончании печати вызывается приложение VB с параметром -распечатанный файл.
Смысл приложения: модуль с main(), при опред.условиях из main вызывается form.show
В эту form надо ввести дополнительную информацию. Она вылазит "под низ", при этом на панели задач ее "прямоугольник" "мигает". Т.е. что-то мешает ей вылезти наверх, что не пойму, чувствую какой-то подвох, вроде активна, а не сверху.
...
Рейтинг: 0 / 0
Форма в Viste не хочет "поверх всех".
    #36481824
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема#1:
>при этом на панели задач ее "прямоугольник" "мигает"
форма просит фокуса и в этом ее проблема на Висте
Заменил
Код: plaintext
            Form1.Show
на
Код: plaintext
1.
           Load Form1
           Form1.Visible = True
и убрал в паре мест бесполезные .SetFocus
Фокуса не просит, да и бог с ним, мигать перестала.

Проблема#2:
>Она вылазит "под низ"
Перепробовал много ф-ций, но все они требуют фокуса, что приводит к проблеме #1.
Извернулся так:

Код: plaintext
1.
2.
3.
Private Sub Form_Activate()
    SetWindowPos Me.hWnd, HWND_TOPMOST,  0 ,  0 ,  0 ,  0 , SWP_NOSIZE Or SWP_NOMOVE 'непотопляемое окно
    SetWindowPos Me.hWnd, HWND_NOTOPMOST,  0 ,  0 ,  0 ,  0 , SWP_NOSIZE Or SWP_NOMOVE 'разрешаем потопить, но оно уже наверху
End Sub
Надежен ли этот двойной ход?

...что интересно на XP форма свой фокус таки-получает как и прежде.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Форма в Viste не хочет "поверх всех".
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]