Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
GreenByte
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
1

Окно поверх всех без фокуса!

07.02.2014, 17:32. Просмотров 1190. Ответов 9
Метки нет (Все метки)

Задача такова, что нужно создать окно которое будет по верх всех окон(приложений) находящихся на экране и занимать определённую часть экрана.
Но что бы она не брала фокус при появлении.

Появляется форма вот таким образом на данный момент

C++
1
2
ShowWindow(Application->Handle,SW_SHOW);
this->Show();

Для того что бы она была поверх всех окон
C++
1
Form1->FormStyle=fsStayOnTop;
В общем вопрос состоит в том как сделать так что бы форма при появлении не забирала на себя фокус а просто было по верх всех окон.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 17:32
Ответы с готовыми решениями:

Окно поверх всех
Задача такова что бы окно было всегда выше всех не зависимо от того кликнули на...

Как сделать окно "поверх всех окон"...
Как сделать так, чтобы окно содавалось поверх других окон?

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

Установка фокуса на окно
Всем доброго времени суток. Кто знает как можно установить фокус на окно?...

Окно поверх других окон и автивна
Сделал окно которое отображается поверх других окон(открытых папок, браузера и...

9
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26488 / 17789 / 7037
Регистрация: 22.10.2011
Сообщений: 31,306
Записей в блоге: 6
07.02.2014, 17:41 2
Цитата Сообщение от GreenByte Посмотреть сообщение
Появляется форма вот таким образом на данный момент
Очень интересно откуда вызывается этот код? По какому событию?
0
GreenByte
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
07.02.2014, 18:05  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
Очень интересно откуда вызывается этот код? По какому событию?

К примеру по таймер.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26488 / 17789 / 7037
Регистрация: 22.10.2011
Сообщений: 31,306
Записей в блоге: 6
07.02.2014, 19:14 4
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Тогда к примеру вот так:
C++
1
2
3
4
5
//...
    ShowWindow(Application->Handle, SW_SHOW);
    ShowWindow(Handle, SW_SHOW);
    SetWindowPos(this->Handle, HWND_TOPMOST, 0, 0, 0, 0,
        SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
2
GreenByte
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
07.02.2014, 19:45  [ТС] 5
Большое спасибо помогло
0
Байт
Эксперт C
19207 / 12333 / 2603
Регистрация: 24.12.2010
Сообщений: 25,350
07.02.2014, 21:58 6
Цитата Сообщение от UI Посмотреть сообщение
Тогда к примеру вот так:
Я правильно понимаю, что фишка в том, чтобы сделать окно неактивным?
0
gunslinger
случайный прохожий
1321 / 838 / 328
Регистрация: 20.07.2013
Сообщений: 2,372
08.02.2014, 11:43 7
Да, неактивным (при появлении).
SWP_NOACTIVATE
0
GreenByte
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
09.02.2014, 18:24  [ТС] 8
Спасибо уже зделал
0
GreenByte
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 34
12.02.2014, 17:02  [ТС] 9
Цитата Сообщение от UI Посмотреть сообщение
Тогда к примеру вот так:
C++
1
2
3
4
//...
    ShowWindow(Application->Handle, SW_SHOW);
    SetWindowPos(this->Handle, HWND_TOPMOST, 0, 0, 0, 0,
        SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);

Ну точнее вот это на разницы в работе нет почти
C++
1
2
3
SetWindowPos(this->Handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE  );
this->Show();

Извините не могли бы вы ещё чуть чуть помощь проблема возникла в том что если по окну кликнуть
То при вызове нового окна или которое было ниже оно закрывает наше окно.
Если же не кликать то оно всегда остаётся сверху
0
Dam33
38 / 23 / 7
Регистрация: 04.10.2012
Сообщений: 117
12.02.2014, 22:02 10
Как то меня сразу напрягают подобные темы.
На ум приходит исключительно мысль об очередном блокировщике Windows.
0
12.02.2014, 22:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 22:02

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

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

TShape поверх всех объектов
Здравствуйте! Хочу повесить объект Shape поверх ВСЕХ объектов на форме. Что-то...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru