Изменение цвета фона окна - PullRequest
2 голосов
/ 23 октября 2010

В winAPI, как мне изменить цвет фона окна?

Например,

wc.hbrBackground = ....;

для первоначальной установки фона окна, но как я могу изменить его после?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 23 октября 2010

Используйте функцию SetClassLongPtr с аргументом GCLP_HBRBACKGROUND:

SetClassLongPtr(windowHandle, GCLP_HBRBACKGROUND, brushHandle);

http://msdn.microsoft.com/en-us/library/ms633589%28VS.85%29.aspx

3 голосов
/ 24 октября 2010

Остерегайтесь использования техники, описанной PigBen.Он изменит цвет фона для всех экземпляров этого класса окна, если они не реализуют WM_PAINT / WM_ERASBKGND, который переопределяет фон по умолчанию для окон.

Я бы приложил дополнительные усилия для реализации WM_ERASEBKGND для вашего окна и нарисовал быфон явно.Таким образом, вы полностью контролируете цвет фона и можете иметь разные цвета в разных окнах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...