Страница 1 из 1

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

СообщениеДобавлено: 23.12.2016 11:47:26
Alex. S
Хочу получить цвет фона из темы. Добавил в uses Uxtheme, далее:

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


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

Подскажите, как правильно сделать вызов функции OpenThemeData?

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

СообщениеДобавлено: 23.12.2016 11:59:01
DYUMON
hMainWnd <- этот хендл получил ?

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

СообщениеДобавлено: 23.12.2016 12:04:29
Alex. S
DYUMON, это HWND моего окна. Если правильно понял описание параметров в MSDN, первый параметр этой функции - это HWND окна, где нужно получить Data.

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

СообщениеДобавлено: 24.12.2016 10:22:08
CynicRus
А ОС то какая?

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

СообщениеДобавлено: 24.12.2016 21:34:05
Alex. S
CynicRus, проверял в XP.

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

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