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

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

07.02.2014, 17:32. Просмотров 1102. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Окно поверх всех без фокуса! (C++ Builder):

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

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

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

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

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

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

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

К примеру по таймер.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25624 / 17177 / 6830
Регистрация: 22.10.2011
Сообщений: 30,369
Записей в блоге: 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 / 3
Регистрация: 19.04.2013
Сообщений: 34
07.02.2014, 19:45  [ТС] #5
Большое спасибо помогло
0
Байт
Эксперт C
17777 / 11802 / 2453
Регистрация: 24.12.2010
Сообщений: 23,728
07.02.2014, 21:58 #6
Цитата Сообщение от UI Посмотреть сообщение
Тогда к примеру вот так:
Я правильно понимаю, что фишка в том, чтобы сделать окно неактивным?
0
gunslinger
случайный прохожий
1269 / 800 / 317
Регистрация: 20.07.2013
Сообщений: 2,248
08.02.2014, 11:43 #7
Да, неактивным (при появлении).
SWP_NOACTIVATE
0
GreenByte
0 / 0 / 3
Регистрация: 19.04.2013
Сообщений: 34
09.02.2014, 18:24  [ТС] #8
Спасибо уже зделал
0
GreenByte
0 / 0 / 3
Регистрация: 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 поверх ВСЕХ объектов на форме. Что-то...

MessageBox поверх всех окон!
Можно ли что бы MessageBox был поверх всех окон? { if (MessageBox(0, Caption...

Вторая форма поверх всех окон
Пишу програмку в которой есть 2 формы: первая главная, вторая - для вывода...


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

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

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