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

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

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

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

Сообщение Alex. S » 23.12.2016 11:47:26

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

Код: Выделить всё
var
//
ThemeHandle: HTHEME;
...
begin
//
ThemeHandle:=OpenThemeData(hMainWnd, PWideChar('TEXTSTYLE'));


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

Подскажите, как правильно сделать вызов функции OpenThemeData?
Alex. S
новенький
 
Сообщения: 39
Зарегистрирован: 22.08.2015 11:37:00

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

Сообщение DYUMON » 23.12.2016 11:59:01

hMainWnd <- этот хендл получил ?
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

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

Сообщение Alex. S » 23.12.2016 12:04:29

DYUMON, это HWND моего окна. Если правильно понял описание параметров в MSDN, первый параметр этой функции - это HWND окна, где нужно получить Data.
Alex. S
новенький
 
Сообщения: 39
Зарегистрирован: 22.08.2015 11:37:00

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

Сообщение CynicRus » 24.12.2016 10:22:08

А ОС то какая?
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

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

Сообщение Alex. S » 24.12.2016 21:34:05

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

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

Проблему с OpenThemeData пока не решил, если понадобится ещё раз, попробую разобраться, почему код не работал должным образом.
Alex. S
новенький
 
Сообщения: 39
Зарегистрирован: 22.08.2015 11:37:00


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru