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

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

24.07.2010, 03:32. Показов 5750. Ответов 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
3957 / 1812 / 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
3957 / 1812 / 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
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru