Форум » GUI » Как узнать цвет фона титула окна ? » Ответить

Как узнать цвет фона титула окна ?

Andrey: Потребовалось узнать цвет фона титула окна. Как это сделать ? Есть такая функция, Григорий давал. [pre2]Function RowColColorRGB(y,x,hWin) LOCAL hdc, cMsg, aColor := {0,0,0} DEFAULT hWin := ThisWindow.Handle hdc := GetDC( hWin ) IF GetPixelColor( hdc, x, y, @aColor ) cMsg := "RGB (" ; + " r:" + str(aColor[1], 3 ) ; + " g:" + str(aColor[2], 3 ) ; + " b:" + str(aColor[3], 3 ) ; + " )" ENDIF ReleaseDC( hWin, hdc ) Return aColor[/pre2] Делаю запрос цвета в ON INIT формы: [pre2] aTitleBClr := RowColColorRGB(5,105,ThisWindow.Handle) // цвет титула SetProperty(cForm, "LblBottom2", "Backcolor", aTitleBClr) [/pre2] Цвет фона - черный. Почему, что не так делаю ?

Ответов - 8

Andrey: Спасибо Григорий за наводку - SAMPLES\Advanced\ComboColor Но что-то цвета не совпадают... или я не то беру... У меня зелёный цвет фона титула окна, а в примере другой показывается. Как тогда узнать нужный цвет ?

gfilatov2002: Andrey пишет: Но что-то цвета не совпадают Эта функция не работает для Винды 10/11 Подробности см. здесь click here

Andrey: Понял, СПАСИБО !


Andrey: Вот нашёл цвета. Может кому будет интересно. Основной цвет из этого списка можно получить через ключ реестра: Компьютер\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM\AccentColor Цвет хранится в следующем формате: 1. Прозрачность 2. Синий 3. Зелёный 4. Красный При изменении цвета всем окнам отправляется событие WM_SETTINGCHANGE: https://learn.microsoft.com/en-us/windows/win32/winmsg/wm-settingchange Узнать включена тёмная тема или нет при помощи ключа: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme 0 - тёмная тема 1 - светлая тема

Andrey: А программы на МиниГуи в темной теме Windows - белые, т.е. титул окна белый. Фигово...

Andrey: Модифицировал пример SAMPLES\Advanced\ComboColor Получилось вот так: А как убрать кривой чекбокс совсем ? Или исправить на правильный ?

Andrey: Разобрался немного с темной темой. Пример отправил Григорию. Вот так в МиниГуи работает темная тема:

gfilatov2002: Andrey пишет: Пример отправил Григорию Благодарю за обновленный пример



полная версия страницы