c ++ Win32 API Как менять цвета только у своего приложения, подобно SetSysColors?
Пишу приложения на C++, использую функции Win32 API. Функция SetSysColors замечательно меняет раскраску, но влияет на цвета всех приложений OS Windows. Как менять цвета только у своего приложения ?
Ответы (1 шт):
Автор решения: Alexey Vesker
→ Ссылка
Способ 1:
- В нужном вам месте создаете кисть, используя функцию
CreateSolidBrushи вызовом функцииInvalidateRectперерисовываете окно; - В оконной функции обрабатываете сообщение
WM_PAINTи заливаете окно ранее созданной кистью, используя для этого функциюFillRect.
Способ 2, подходит для диалоговых окон:
- В нужном вам месте создаете кисть, используя функцию
CreateSolidBrushи вызовом функцииInvalidateRectперерисовываете окно; - В оконной функции обрабатываете сообщение
WM_CTLCOLORDLGи просто возвращаете созданную ранее кисть:return (INT_PTR)hBrush.