2013-04-03 2 views
2

Я создал окно с использованием dwmextendframeintoclientarea, все в порядке, за исключением того, что высота верхнего кадра меньше значения, которое я установил, когда окно максимально.Как получить верхнюю высоту кадра расширенного и максимизированного окна dwm?

Таким образом, текст, нарисованный с использованием drawthemetext, не будет выравнивать абсолютный вертикальный центр, как показано на следующем рисунке. the normal size

maximized window

первым является заголовок бар в то время как окно нормального размера, в то время как второе окно развернуто.

Это потому, что высота верхней рамки на самом деле меньше, чем значение, установленное в DwmExtendFrameIntoClientArea.

Проблема в том, как я могу получить реальную высоту верхнего кадра, в то время как dwm включен и окно максимизировано?

ответ

1

Когда ваше приложение максимизировано, Windows на самом деле его размер немного больше, чем экран. Таким образом, края вашего окна расширяются за кадром, что приводит к визуализации, которую вы наблюдаете. Вы можете использовать положение и размер, полученные в структуре MINMAXINFO, в сообщении WM_GETMINMAXINFO, отправленном в ваше окно, чтобы определить, насколько далеко заходит экранное окно, и использовать его для настройки рендеринга при максимальном увеличении.

+0

thx, (-8, -8) возвращенный. Я думаю, что он может быть равен GetSystemMetrics (SM_CYFRAME) + GetSystemMetrics (SM_CXPADDEDBORDER); – Jichao

Смежные вопросы