Я разработал приложение win32 и создаю цветовой выбор, используя this example. Я обновляю, если оператор this изменит фон моего приложения, когда пользователь нажимает кнопку «ОК» в диалоговом окне цвета, но ничего не меняется. Где моя ошибка?Невозможно изменить фон окна
if (ChooseColor(&cc) == TRUE) {
HBRUSH hbrush = CreateSolidBrush(cc.rgbResult);
rgbCurrent = cc.rgbResult;
SetClassLongPtr(hWnd, GCLP_HBRBACKGROUND, (LONG)hbrush);
}
Вам необходимо использовать статическую кисть. Создание нового каждый раз означает утечку ресурсов. – DimChtz
Вам нужен WM_ERASEBKGND, см. Принятый андерсер в ссылке SO, которую вы опубликовали. – Joel
Не бросайте 'hbrush' в' LONG', вся точка 'SetClassLongPtr' заключается в том, что этот параметр является' LONG_PTR'. –