Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GetThemeColor [D7, WinXP]


Casper ©   (2003-12-24 18:03:00) 

Как правильно узнать цвета конкретных управляющих элементов вроде "BUTTON" использующих
XP темы. Другими словами если TaskBar в XP разукрашен с синий цвет или olive, например,
то как добраться до его цветов в RGB-формате?
Я знаю что для этого можно использовать функцию GetThemeColor из модуля UxTheme.pas,
однако нижеследующий код возвращает ошибку "A call to an OS function failed".

var
FTheme: HTheme;
AColor:COLORREF;
begin
if not IsThemeActive then Exit;
try
FTheme := OpenThemeData(Handle, PWideChar("WINDOW"));
if GetThemeColor(FTheme, WP_CAPTION, CS_ACTIVE, TMT_COLOR, AColor)<>S_OK then RaiseLastWin32Error;
finally
CloseThemeData(FTheme);
FTheme := 0;
end;
end;


Yurock   (2003-12-24 20:15:00) [1]

GetSysColor(<константа>) = цвет.

<константа> - COLOR_BTNFACE, COLOR_ACTIVECAPTION...

В общем, в хелпе посмотришь на эту ф-цию. Лучше в MSDN


MBo   (2003-12-24 18:21:00) [2]

http://216.101.185.148/scripts/isapi.dll/thread?id=180BF52B&thread=1134143


Наверх

Титульная страница Поиск, карта сайта Написать письмо