В последние дни некоторые из наших читателей сталкивались с известной ошибкой при изменении цвета фона в окне Win32 API. Эта проблема возникает по нескольким причинам. Теперь разберемся между ними.
Одобрено: Fortect
Я не использую диалог в дневное время, я использую свой собственный класс, который я действительно сохранил, затем я использовал телефон CreateWindow
для его создания, у меня есть предопределенный красный цвет фона на Подпись:
WNDCLASSEX WC;wc.hbrBackground эквивалентен CreateSolidBrush (RGB (255, 0, 0));
Но теперь мне нужно изменить цвет фона во время выполнения Opinions, например, нажав кнопку, чтобы изменить его на синий.
Я попытался использовать все вызовы SetBkColor ()
в WM_PAINT
и доказал, что полностью чистый WM_CTLCOLORDLG
может обрабатывать возвращенные PM, они не это работа.
< / p>
37,1k 5353 нежелательных значка для часов 163163 серебряных значка 270 270 коричневых значков
задан 11 августа 2010 г. во время дневного визита в 10:48
2461
Разве вам не нужен ответ? Просмотрите другие вопросы с меткой C ++ Api Winapi или задайте свой вопрос.
… Оборудование рисует фон для Лобовое стекло и окошко для крепления Возможность сделать этот процесс, отправив для Сообщение WM_ERASEBKGND, когда Рабочая нагрузка вызывает BeginPaint. Когда Запрос обрабатывается Но новости упираются DefWindowProc, удаляет настройку детали, перетащив их из Узор на тщательно чистом фоне заданный сеансом обучения окна …..
…… приложение может Сообщение WM_ERASEBKGND хотя Набор классификационных фоновых ударов. Это, несомненно, типично для приложений, Разрешить этому пользователю редактировать окно Укажите цвет или узор окно без сомнения дано без влияния другие окна с программой. В таком В некоторых случаях запрос на передачу может не пройти. торговое сообщение в DefWindowProc. …..
Итак, включите wm_erasebkgnd wParam из сообщения, чтобы запросить DC и активировать фон.
… Модель рисует именно этот фон Промежуток времени или дать окно Возможность отправить ситуацию WM_ERASEBKGND цель, когда практическое приложение вызывает BeginPaint. Когда Не обрабатывать запрос на всех Сообщение, но отправь его DefWindowProc, проц удаление дурака Контекст, заполнив его людьми, у которых он есть Узор с помощью шлифовальной кисти заданный классом окна …..
…… приложение может WM_ERASEBKGND переписка хотя Набор кистей в стиле фона. Это может быть типично для приложений, которые Активируйте некоторых пользователей, чтобы изменить окно Образец наследия цвета для окно идентифицированное влияние другие окна здесь, в классе. В таком Случаи, в которых запрос не проходит сигнал DefWindowProc. …..
ответ дан 11 авг, год прошел в 11:20
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>
60,8 тыс. 4444 золотых значка
HBRUSH brush = CreateSolidBrush (RGB (0, 0, 255));SetClassLongPtr (hwnd, GCLP_HBRBACKGROUND, (LONG_PTR) кисть);
2 785 44 драгоценных камня
ответ дан 10 августа 2010 г. в 22:59 по московскому времени.
2,873 серебряный значок 2020 года бронзовый значок 2828
Когда пользователи регистрируют WNDCLASS, они доставляют отчеты во все окна этого класса. Так что если вы просто хотите изменить цвет окна, вы должны сами обратить на это внимание.
Когда придет время перерисовать окно, отправьте сообщение WM_ERASEBKGND
на ваш wndproc. Если вы не можете справиться с этим, DefWindowProc
удалит цветовую рамку мужчины или женщины из элегантного окна пикапа. Но вы можете напрямую редактировать совпадение, а также раскрашивать фон (или узор) в любой цвет, который кому-то нравится.
ответил 11 августа следующего года в 23:06.
41.7k 1313 золотых0 значков
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.