| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Form на весь экран с Vcl styles |
| Автор: Illusion Dolphin 7.10.2012, 10:53 | ||
| Актуально для XE2/XE3. Если форма использует стили, то при полноэкранном режиме с включённом Aero (DwmCompositionEnabled and (Form.WindowState = wsMaximized)) форма "вылазит" за предоставленные пределы и часть контролов слва, справа и снизу обрезается. Я попробовал исправить это через дополнение к TFormStyleHook:
Но это только уменьшает размеры клиентской области, чтобы она не влазила за экран, при этом контролы всё равно обрезаются, а на месте получившейся рамки не работает прорисовка. В аттаче пример и скриншоты. Кто может помочь? Заранее спасибо откликнувшимся! P.S. пробовал перехватывать WM_GETMINMAXINFO - не удалось выставить корректные размеры формы (она вылазил за экран), поэтому код не привожу. Тут http://stackoverflow.com/questions/10936906/what-can-i-do-about-maximized-styled-windows-which-show-their-borders-on-adjac дан пример, который страдает проблемой - InflateRect(R, -1, -1); // odd pixel - меньше на пиксель чем экран, если убрать строку (чтобы как раз на монитор) - то всё становится совсем неправильных размеров |