Вниз
Скачать: 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.014 c
1-49494
Cash
2004-01-04 01:12
2004.01.16
Как запустить зарегистрированный файл.


3-49433
Overstep
2003-12-12 17:57
2004.01.16
Проблема с ADO на клиенте


14-49712
IronHawk
2003-12-11 12:39
2004.01.16
У кого есть код, генератора чисел?


1-49588
Марат
2004-01-06 12:57
2004.01.16
F1


1-49603
olookin
2004-01-05 08:13
2004.01.16
Странная ошибка (иначе не скажешь)




   Наверх