Вниз
Скачать: CL | DM;

Прорисовка заголовка окна в различных стилях.   Найти похожие ветки 

 
Юрий Зотов ©   (2004-01-06 12:00) [0]

По ряду причин требуется прорисовать системный заголовок окна "ручками". Для определения размеров и расположения элементов заголовка (рамки, иконки, кнопок управления окном) используются вызовы GetSystemMetrics с параметрами, определяемыми стилем окна.

В итоге "классический" заголовок рисуется нормально (то есть, неотличимо от системной прорисовки), но при включении тем в XP геометрия "съезжает", причем в зависимости от текущего стиля окна съезжает совершенно по-разному. Что для меня странно - я полагал, что GetSystemMetrics должна выдавать правильные данные при любой теме или без темы вообще.

Если подкорректировать прорисовку, то добиться нужного результата удается - но тогда, естественно, съезжает геометрия заголовка при прорисовке в классическом стиле. Значит, прорисовка должна быть условной и в связи с этим возник вопрос.

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

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

Пытался покопаться в MSDN, но безуспешно (видимо, потому, что он у меня не шибко свежий).

Заранее спасибо.


 
REA ©   (2004-01-06 12:04) [1]

Pls. детализируйте ваши изыскания в отношении вызовов GetSystemMetrics и "коррекции" ее показаний. Т.е. что куда съезжает.


 
Игорь Шевченко ©   (2004-01-06 12:23) [2]

В XP GetSystemMetrics подменяется функцией ThemeGetSystemMetrics из UxTheme.DLL. Она же экспортирует функции IsAppThemed и GetWindowTheme. Может, чем поможет


 
REA ©   (2004-01-06 12:36) [3]

По наводке ИШ в MSDN за апрель 2003:
User Interface Design And Development\Windows Shell\Shell Reference\Visual Styles Reference



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
1-49627
Depo
2004-01-04 16:01
2004.01.16
Перекрытие стандарных методов в компонентах


14-49734
Sniper-Max
2003-12-22 08:26
2004.01.16
Потеря пароля из диалогового окна коннекта...


1-49579
INTAARI
2004-01-05 16:02
2004.01.16
Каким компонентом пользоваться для обзора и выбора папок


3-49420
alex-xx
2003-12-18 20:32
2004.01.16
Хранимые процедуры IB


11-49472
=Sniper=
2003-05-03 21:13
2004.01.16
Label и вообще компоненты!




   Наверх