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.
→ Ссылка