Автоматическое скрытие панели задач не появляется, когда мое приложение развернуто - PullRequest
3 голосов
/ 26 сентября 2008

Мое приложение рисует все свои границы окон и декорации. Он отлично работает с панелями задач Windows, для которых установлено автоматическое скрытие, за исключением случаев, когда окно моего приложения развернуто. Панель задач не «свернется». Он будет вести себя нормально, если у меня приложение не развернуто, даже если его размер полностью указан в нижней части экрана. Это даже работает нормально, если я просто изменяю размер окна, чтобы охватить весь экран (как если бы он был развернут)

Ответы [ 2 ]

4 голосов
/ 27 сентября 2008

Я нашел проблему. Мое приложение обрабатывало сообщение WM_GETMINMAXINFO и переопределяло значения в записи параметра MINMAXINFO. Значения, которые были в записи, были увеличены на 7 (ширина границы) разрешением экрана. Это имеет смысл в том, что, когда оно развернуто, оно раздвигает границы окна за пределы видимой части экрана. Он также устанавливает ptMaxPosition (точка, в которой источник окна устанавливается при максимизации) на -7, -7. Мое приложение устанавливало это в 0,0, а максимальная высота и ширина точно соответствовали размеру экрана (не завышены). Не уверен, почему это было сделано; это было написано предшественником. Если я закомментирую этот код и не изменю структуру MINMAXINFO, работает функция автоматического скрытия.

Что касается того, почему, я не совсем уверен. Возможно, что обнаружение появления «автоматически скрытой» панели задач подключено к механизму обработки сообщений WM_MOUSEMOVE, а не для WM_NCMOUSEMOVE. С моим приложением, заставляющим максимизировать парковку моей границы прямо в нижней части экрана, я бы генерировал события WM_NCMOUSEMOVE; если оставить MINMAXINFO в одиночку, я бы сгенерировал WM_MOUSEMOVE.

0 голосов
/ 26 сентября 2008

Это зависит от того, установлен ли флажок «Сохранить панель задач поверх других окон» в свойствах панели задач. Если флажок установлен, появится панель задач.

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

...