Ошибка SIGSEGV при вызове функции

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Alex. S
новенький
Сообщения: 39
Зарегистрирован: 22.08.2015 10:37:00

Ошибка SIGSEGV при вызове функции

Сообщение Alex. S »

Хочу получить цвет фона из темы. Добавил в uses Uxtheme, далее:

Код: Выделить всё

var
//
ThemeHandle: HTHEME;
...
begin
//
ThemeHandle:=OpenThemeData(hMainWnd, PWideChar('TEXTSTYLE'));


При вызове OpenThemeData получаю ошибку SIGSEGV.

Подскажите, как правильно сделать вызов функции OpenThemeData?
Аватара пользователя
DYUMON
постоялец
Сообщения: 234
Зарегистрирован: 11.03.2009 12:32:54
Контактная информация:

Сообщение DYUMON »

hMainWnd <- этот хендл получил ?
Alex. S
новенький
Сообщения: 39
Зарегистрирован: 22.08.2015 10:37:00

Сообщение Alex. S »

DYUMON, это HWND моего окна. Если правильно понял описание параметров в MSDN, первый параметр этой функции - это HWND окна, где нужно получить Data.
CynicRus
постоялец
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Сообщение CynicRus »

А ОС то какая?
Alex. S
новенький
Сообщения: 39
Зарегистрирован: 22.08.2015 10:37:00

Сообщение Alex. S »

CynicRus, проверял в XP.

Нашёл другое решение, по сути, мне Uxtheme даже не нужен был, просто GetSysColor(COLOR_HIGHLIGHT). Но, когда проверял параметры функции GetSysColor, я с COLOR_HIGHLIGHT промахнулся, и решил, что цвет фона выделенного текста темой задаётся.

Проблему с OpenThemeData пока не решил, если понадобится ещё раз, попробую разобраться, почему код не работал должным образом.
Ответить