![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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