Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма поверх всех окон, Снова эта темаю Не получается 
:(
    Опции темы
ИгнатьевАлексей
Дата 27.9.2022, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Друзья, помогите, пож-та!

Перепробовал множество вариантов, с сайтов, с нашего форума... и все-равно задачу не решил  smile 
Мне нужно вывести форму поверх всех окон.

У меня Win10, Office365 (VBA, но я пишу сюда, хоть и не уверен, что верно делаю).

Во всех вариантах, что я пробовал, форма выводится как-то странно. То вылезает наверх, как нало, а то, мигает вместе с Excel.
Как то приметил, что поверх браузерных окон она не хочет вылезать.

Вот последний вариант, что я пробовал:

Код

' SetWindowPos Flags
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOZORDER = &H4
Const SWP_NOREDRAW = &H8
Const SWP_NOACTIVATE = &H10
Const SWP_FRAMECHANGED = &H20        '  The frame changed: send WM_NCCALCSIZE
Const SWP_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Const SWP_NOCOPYBITS = &H100
Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering
Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
' SetWindowPos() hwndInsertAfter values
Const HWND_TOP = 0
Const HWND_BOTTOM = 1
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2

#If Win64 Then
    Private Declare PtrSafe Function SetForegroundWindow Lib "user32" _
               (ByVal hwnd As LongPtr) As LongPtr
               
    Private Declare PtrSafe Function SetWindowPos Lib "user32.dll" ( _
    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 LongPtr
    
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
                (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

#Else
    Private Declare Function SetForegroundWindow Lib "user32" _
               (ByVal hWnd As Long) As Long
    
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
                (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
                
    Private Declare Function SetWindowPos Lib "user32.dll" ( _
    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
#End If



Private Sub UserForm_Activate()
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, Me.Caption)
    SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, (SWP_NOSIZE + SWP_NOMOVE + SWP_SHOWWINDOW)

End Sub

 

Заранее спасибо, друзья!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 27.9.2022, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20540
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Представь на секунду, что задача решена, и окно появляется поверх остальных. Но через секунду код или скрипт в браузере даёт команду своему окну вылезти поверх всех остальных...

Твоё окно надо кроме всего прочего сделать глобально-модальным. Чтобы до его закрытия у других окон не было шансов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 27.9.2022, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Akina, спасибо!

Теперь понимаю, почему не получается.

А Вы не долкнете меня в нужном направлении для поиска? В инете я как-то особо этого не нашел. У нас на форуме тоже... smile 


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 27.9.2022, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20540
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Никогда этими вещами не занимался...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Oldshelf
Дата 28.9.2022, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 22.4.2018

Репутация: 2
Всего: 3



Цитата(ИгнатьевАлексей @  27.9.2022,  08:21 Найти цитируемый пост)
В инете я как-то особо этого не нашел.

Не уверен, но кажется что-то похожее: https://ccm.net/computing/programming/3881-...-apps-with-vb6/
PM MAIL WWW   Вверх
ИгнатьевАлексей
Дата 6.10.2022, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Так и не решил пока проблему.
Причем, у меня не складывается ощущение, что мое окошко передавливают другие окна. Оно само как-то капризничает в зависимости от того, в каком положении я оставил сам Excel и окно VB.


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1161 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.