Quest272
Хочу ещё раз спросить, потому что не понимаю режима сворачивания урезающего возможности.
1. Я давно предлагал так: Кнопка закрытия сворачивает в трей. Кнопка сворачивания - на панель задач. Мне всегда доступны оба режима и если я сейчас пользуюсь прогой активно то сворачиваю на панель задач, там кнопка больше и разворачивать легче, а если долго не буду пользоваться, то сворачиваю в трей кнопкой закрыть. Оба режима мне доступны.
2. Как обстоят дела сейчас: Если я завершаю программу при свёрнутой в трей программе, то я лишаюсь режима сворачивания на панель задач. Если я завершаю свёрнутой на панель задач, то прога работает в удобном мне режиме.
Вроде бы решается желание человека, которому нравится режим при котором обе кнопки сворачивают в трей. И получается, что если сделать выбор в сторону одного из пользователей, то создать проблему для другого пользователя. Может тогда сделать настройку в опциях о режиме сворачивания? Например две радиокнопки "Кнопка Свернуть и Закрыть сворачивают в трей" и "Кнопка Свернуть - панель задач, Закрыть - в трей" (или чекбокс "Свернуть - сворачивает в трей"). Тогда проблема будет решена. Хотя я немного привык к постоянному сворачиванию на панель задач, и ограничиваю себя от сворачивания в трей, так как после этого мне приходится перезапускать прогу и это было стабильно, поэтому я стабильно нажимаю "только свернуть".
Ang_Reload
Если будете закрывать прогу при развёрнутом окне, то пока так решается проблема. Всё же лучше кликнуть 1 раз, чем на следующий день настраивать окно.
Quest272
я тоже решал такую проблему, потому что не возможно получить размеры окна, если оно свёрнутое. Можно развернуть перед закрытием, но тоже плохо. Я использовал WM_EXITSIZEMOVE, сохраняя размеры в переменные после каждого изменения окна, а в конце, даже если свёрнуто, сохранял последние. Также сохранял триггер развёрнутости окна на весь экран. Потому что если я сохраню эти координаты при развёрнутом состоянии то восстановление окна нечего не меняет. То есть при развернутом на весь экран координаты не сохраняются, а сохраняются последние восстановленного состояния. И я ещё проверял валидность размеров окна при старте, чтобы при работе с портабельной версией сохранённые координаты окна не оказались за пределами экрана при использовании на маленьком мониторе.
Хотя вместо WM_EXITSIZEMOVE использовал WM_SIZE и WM_WINDOWPOSCHANGING, потому что требовалось вычислять размеры внутренних окон, то в этих же функциях сохранялись все размеры, без добавления ещё и WM_EXITSIZEMOVE.
Хочу ещё раз спросить, потому что не понимаю режима сворачивания урезающего возможности.
1. Я давно предлагал так: Кнопка закрытия сворачивает в трей. Кнопка сворачивания - на панель задач. Мне всегда доступны оба режима и если я сейчас пользуюсь прогой активно то сворачиваю на панель задач, там кнопка больше и разворачивать легче, а если долго не буду пользоваться, то сворачиваю в трей кнопкой закрыть. Оба режима мне доступны.
2. Как обстоят дела сейчас: Если я завершаю программу при свёрнутой в трей программе, то я лишаюсь режима сворачивания на панель задач. Если я завершаю свёрнутой на панель задач, то прога работает в удобном мне режиме.
Вроде бы решается желание человека, которому нравится режим при котором обе кнопки сворачивают в трей. И получается, что если сделать выбор в сторону одного из пользователей, то создать проблему для другого пользователя. Может тогда сделать настройку в опциях о режиме сворачивания? Например две радиокнопки "Кнопка Свернуть и Закрыть сворачивают в трей" и "Кнопка Свернуть - панель задач, Закрыть - в трей" (или чекбокс "Свернуть - сворачивает в трей"). Тогда проблема будет решена. Хотя я немного привык к постоянному сворачиванию на панель задач, и ограничиваю себя от сворачивания в трей, так как после этого мне приходится перезапускать прогу и это было стабильно, поэтому я стабильно нажимаю "только свернуть".
Ang_Reload
Если будете закрывать прогу при развёрнутом окне, то пока так решается проблема. Всё же лучше кликнуть 1 раз, чем на следующий день настраивать окно.
Quest272
я тоже решал такую проблему, потому что не возможно получить размеры окна, если оно свёрнутое. Можно развернуть перед закрытием, но тоже плохо. Я использовал WM_EXITSIZEMOVE, сохраняя размеры в переменные после каждого изменения окна, а в конце, даже если свёрнуто, сохранял последние. Также сохранял триггер развёрнутости окна на весь экран. Потому что если я сохраню эти координаты при развёрнутом состоянии то восстановление окна нечего не меняет. То есть при развернутом на весь экран координаты не сохраняются, а сохраняются последние восстановленного состояния. И я ещё проверял валидность размеров окна при старте, чтобы при работе с портабельной версией сохранённые координаты окна не оказались за пределами экрана при использовании на маленьком мониторе.
Хотя вместо WM_EXITSIZEMOVE использовал WM_SIZE и WM_WINDOWPOSCHANGING, потому что требовалось вычислять размеры внутренних окон, то в этих же функциях сохранялись все размеры, без добавления ещё и WM_EXITSIZEMOVE.