Russian Qt Forum
Ноябрь 24, 2024, 05:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: MainWindow без фокуса  (Прочитано 13307 раз)
Bepec
Гость
« Ответ #15 : Июль 02, 2014, 19:17 »

Ответ прост в общем то. Сделать его всегда активным или неактивным очень трудоёмко- по замыслу разработчиков это важная часть работоспособности окна. Замучаешься костыли вставлять и разрабы винды икать устанут.

Однако можно создать для пользователя иллюзию активности/неактивности окна, самому определяя и исправляя цвет/реакции.

Это в разы проще и реализуемо.
 
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Июль 03, 2014, 08:21 »

В общем сделать "постоянно" неактивным не выходит и нативными средствами. Разрешается блокировать WM_MOUSEACTIVATE, но не WM_ACTIVATE, которое прорывается напр при движении окна. Максимум можно вернуть фокус "взад" сделав PostMessage, будет небольшое мигание (приемлемо).

Оптимальным выглядит пресечь активацию при клике в клиентскую область, остальное лучше не трогать и активацию все же допустить.

Однако можно создать для пользователя иллюзию активности/неактивности окна, самому определяя и исправляя цвет/реакции.

Это в разы проще и реализуемо.
Это было бы прекрасно, но боюсь что подтвердить слова делом Вы не сможете. Буду очень рад ошибиться, итак, варианты:

- FramelessWindowHint. Ну все рисовать руками имеет смысл (кстати так и сделано для рабочих окон), но начинать эту песню по новой всего для одного окна = явный перебор
   
- UxTheme изучалось вчера. Работы не меньше чем в предыдущим варианте + совершенно неясно как связать это с активно/неактивно.

Еще варианты? Да, и кстати: а что значит "цвет"? А если оно рисуется напр градиентом (как было в XP)

Нет, я конечно понимаю что Верес "просто так" сказал и раскатывать губы не следует. Но все же есть "слабый огонек надежды"  Улыбающийся
Записан
Bepec
Гость
« Ответ #17 : Июль 03, 2014, 10:35 »

Ну по пунктам
1) на слабо меня не взять, потому что у вас нет четкого списка требований. Я могу лишь догадывать что вам надо ^.^
2) рисовать всё руками - так и придётся.
3) цвет и градиент. Вот этого вопроса от вас не ожидал. Я думаю вы на голову выше меня понимаете в графике и так же представляете, что нарисовать любой градиент не представляет особой сложности.

Нет, я не "просто так", я высказал обдуманное решение. Конечно оно не из лёгких, но " в разы проще и реализуемо". Это не предложение написать за вас, не гарантированная возможности написания, это возможность.

update: я честно не вижу проблемы у вас. В начале темы приведено mainWindow нарисованное на мой взгляд вами, а не системой. Даже кривое решение написать  свою "реакцию на движение мыши над окном по таймеру" удовлетворит ваши условия.
Посмотрите на chrome, на его исходники. Он как раз и реализует "активность без активности" при работе в несколько вкладок. Собственно Улыбающийся

PS лучше высказать своё мнение и услышать критику/оценку его, чем промолчать. Hrundel прав ^.^
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Июль 03, 2014, 11:01 »

По поводу "высказывания мнений"
Ответ прост в общем то. ...
Это в разы проще и реализуемо. ...
..так и придётся.
Нет, я не "просто так", я высказал обдуманное решение. ...
Посмотрите на ..
И.т.д  и.т.п
Ах как легко было калякать, делать категоричные заявления налево и направо Улыбающийся  А когда Вас взяли за жопу спросив "а конкретно как" - тогда все это, мол, "лишь мое личное мнение". Чего трепаться если за душой ничего нет? Чего советовать то что никогда не делали сами? Нечего сказать - молчите в трубочку, не засоряйте эфир.
Записан
Bepec
Гость
« Ответ #19 : Июль 03, 2014, 11:48 »

Грубости пошли Улыбающийся Всегда радует такая реакция, когда даже сообщений не читают моих Улыбающийся

Я ответил на ваши вопросы по пунктам Улыбающийся Задавайте вопросы, а я дам на них ответы. Давать ответы на незаданные вопросы могут только боги и демоны Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #20 : Июль 03, 2014, 14:09 »

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

Ладно, вернемся к теме. Пока сделал так: нажатие в title/birder все же активирует main окно, а вот нажатие в область клиента нет. Дальше посмотрим
Записан
Bepec
Гость
« Ответ #21 : Июль 03, 2014, 14:55 »

Улыбающийся не ожидал такой агрессии. Вам бы отдохнуть, расслабиться. Не буду ещё больше вас нервировать.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Июль 05, 2014, 15:23 »

Вроде работает на Win 7 (главное окно все время подсвечено). Прошу проверить на Win 8 (attach)

Спасибо
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #23 : Июль 05, 2014, 18:14 »

проект, конечно, было сложно выложить.

на вин8 тоже работает.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #24 : Июль 05, 2014, 19:36 »

проект, конечно, было сложно выложить.
Проблематично на пресловутом MSVC  Плачущий

на вин8 тоже работает.
Понял, спасибо. Все-таки есть мигание когда хороший paint в рабочих окнах. Посмотрим, там еще можно отключить перерисовку титла через WM_NCPAINT
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.