Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/28: Рейтинг темы: голосов - 28, средняя оценка - 4.54
5 / 5 / 2
Регистрация: 28.02.2010
Сообщений: 127

Вторая форма поверх всех окон

24.07.2010, 03:32. Показов 5716. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу програмку в которой есть 2 формы: первая главная, вторая - для вывода некоторых сообщения поверх всех окон. В настройках второй формы установил чтобы она была поверх всех окон. Все ратотает как нужно. Сейчас сделал чтобы программа могла прятаться в трей и при этом не отображаться на панеле задач(для того чтобы убрать с панели задач я написал
C++
1
ShowWindow(this->Handle, SW_HIDE));
. Тут все работает как надо. Но проблема в том, что второе окно отображаеться но не поверх всех окон а на самом рабочем столе. Для того, чтобы отобразить вторую форму, я в срр-файле второй формы написал функцию которая вызываеться с первой формы, в той функции для появления формы я написал:
C++
1
ShowWindow(this->Handle, SW_SHOW); this->Show();
но если не прятать програму в трей то работает и без
C++
1
ShowWindow(this->Handle, SW_SHOW)
Я думаю, что форма не выскакивает поверх всех потому что я задал SW_SHOW, тоесть "показать форму", а нужно что то типа "показать поверх всех окон", но в хелпе я такого не нашел(((, помогите мне плиз.

Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.07.2010, 03:32
Ответы с готовыми решениями:

Вторая форма поверх всех окон
Всем привет. Тема избитая, но не до конца получается сделать то, что требуется. Есть две форму. Первая основная, вторая для вывода...

Две формы поверх всех окон. Вторая не хочет быть поверх
Ребят, поиск юзал, всё пробовал. Вторая форма не хочет быть наверху, первая нормально наверху висит. Вторая отврывается по событию OnShow...

Форма поверх окон (ОДИН РАЗ)
Как сделать форму поверх окон единоразово. Чтобы пользователь понял что загрузка завершена, например. Пробовал так ...

5
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.07.2010, 11:02
попробуй эту функцию
Delphi
1
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.07.2010, 15:51
Br.Misha, я так понимаю, что вторая форма может появляться и при спрятанной первой форме.
Тогда ей лучше придать стиль самостоятельности. Для этого, в конструкторе форме нужно прописать:
C++
1
SetWindowLong(Handle,GWL_EXSTYLE,GetWindowLong(Handle,GWL_EXSTYLE)|WS_EX_APPWINDOW);
Таким образом, появление формы будет отображаться на панели задач.

Идём дальше. Для отображения формы поверх всех окон советую использовать связку:
C++
1
FormStyle = fsStayOnTop; // в конструкторе или в дизайн-тайме
C++
1
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_NOMOVE||SWP_NOSIZE||SWP_SHOWWINDOW);
Функцию SetWindowPos лучше задать и в конструкторе, и в тех местах, где указывается действие вызова данной формы. Для чего? Для того, чтобы избежать наложений приложений, которые тоже имеют приоритет в Z-последовательности.
0
5 / 5 / 2
Регистрация: 28.02.2010
Сообщений: 127
24.07.2010, 16:40  [ТС]
Lord_Voodoo, БОЛЬШОЕ ВАМ СПАСИБО!!!!! работает точно так, как надо.
И еще, не в тему но чтобы новый топик не создавать спрошу тут.
У меня С++ Builder 2010 ОЧЕНЬ долго думает. Если к примеру какую нить ф-цию скопирую и браузера и вставлю в срр файл то билдер около 5 сек чтото думает. Я думаю что это просто студия проверяет существует ли такая ф-ция или что то типа того. Можно ли как то отключить эту проверку?
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.07.2010, 16:58
Цитата Сообщение от Br.Misha Посмотреть сообщение
Я думаю что это просто студия проверяет существует ли такая ф-ция или что то типа того. Можно ли как то отключить эту проверку?
Идёт просмотр всех модулей проекта, для того, чтобы определить есть ли такая функция, перегружена ли она, нет ли дубликатов в других пространствах и в конечном итоге вывод необходимых параметров в виде подсказок. Отключить можно CodeGuard, но тогда IDE станет обычным блокнотом.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.07.2010, 18:10
Поищите в настройках редактора два фалжка - Code completition и Code parameters, если их убрать, то шустрее будет билдер шевелиться, причем гораздо, а вызвать подсказки можно и горячими клавишами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2010, 18:10
Помогаю со студенческими работами здесь

Поверх всех окон...
Хочу создать функцию в программе, чтобы форма была всегда поверх остальных форм, прог запущеных на компе. Такая функция наприме в ЛайтАлой...

MessageBox поверх всех окон!
Можно ли что бы MessageBox был поверх всех окон? { if (MessageBox(0, Caption ,"Шапка бокса", MB_YESNO) == mrYes) {//мой код} ...

Сообщение поверх всех окон
смысл следующий: программа отлавливает изменения буфера обмена, и если там данные определенного типа извлекает от туда некоторую...

Как нарисовать на экране символы поверх всех окон
Здравствуйте! Если на мультимедийной клавиатуре нажать какую нить мультимедийную кнопку то на дисплее выскакивает большими буквами...

Как можно сделать Форму поверх всех окон?
Как модно сделать Form1 поверх всех окон?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru