Окно, при перерисовке, заливается черным цветом, а хочется, что бы ничем (была бы дырка или цвет родителя, например).
WM_ERASEBKGND ловится, возвращаю 1 (в мсдн говорят, что как будто этим я указываю о том, что сам все стер). и если не заливать экран каким-нить цветом, то все окно будет черным.
Может быть что-то изменилось в последнее время с отрисовкой окна в винде, а я это пропустил? повторяется и для ХР и для 7.
в определении класса использую нулевую кисть
DECLARE_WND_CLASS_EX(_T("MyListCtrl"), CS_CLASSDC | CS_PARENTDC, NULL_BRUSH)
Не знаю что сейчас в МСДН, давно не читал, но по памяти — возврат 1 при WM_BACKGROUND означает что в обработчике WM_PAINT ты сам собираешься рисовать бэкграунд....
Здравствуйте, Figaro, Вы писали:
F> Не знаю что сейчас в МСДН, давно не читал, но по памяти — возврат 1 при WM_BACKGROUND означает что в обработчике WM_PAINT ты сам собираешься рисовать бэкграунд....
Здравствуйте, Figaro, Вы писали:
F>Здравствуйте, Figaro, Вы писали:
F>> Не знаю что сейчас в МСДН, давно не читал, но по памяти — возврат 1 при WM_BACKGROUND означает что в обработчике WM_PAINT ты сам собираешься рисовать бэкграунд....
F>WM_ERASEBACKGROUND конечно...
Ну да, собираюсь. Кто его тогда черным закрашивает? У меня в этом вопрос.
Здравствуйте, fregate, Вы писали:
F>Окно, при перерисовке, заливается черным цветом, а хочется, что бы ничем (была бы дырка или цвет родителя, например).
F>WM_ERASEBKGND ловится, возвращаю 1 (в мсдн говорят, что как будто этим я указываю о том, что сам все стер). и если не заливать экран каким-нить цветом, то все окно будет черным. F>Может быть что-то изменилось в последнее время с отрисовкой окна в винде, а я это пропустил? повторяется и для ХР и для 7.
F>в определении класса использую нулевую кисть F>DECLARE_WND_CLASS_EX(_T("MyListCtrl"), CS_CLASSDC | CS_PARENTDC, NULL_BRUSH)
F>Окно, при перерисовке, заливается черным цветом, а хочется, что бы ничем (была бы дырка
Дырка докуда? Через монитор насквозь чтоли?
F>или цвет родителя, например).
Вот и заливай цветом родителя. В смысле бери в обработчике WM_ERASEBKGND brush родителя и заливай свой регион ею. Родитель сам по себе не будет скорее ничего рисовать в области, занятой дочерними окнами, особенно если у него WS_CLIPCHILDREN установлен.
F>WM_ERASEBKGND ловится, возвращаю 1 (в мсдн говорят, что как будто этим я указываю о том, что сам все стер). и если не заливать экран каким-нить цветом, то все окно будет черным.
А ты на самом деле стер все или просто возвращаешь 1 ?
Как много веселых ребят, и все делают велосипед...
Голова болит, ничё не пойму первичной заливки исходной картинки в dcMem не вижу.
Короче, когда используется дублируюший буфер, то надо при отрисовке из родного DC в memDC содержимое отрендорить, потому как в memDC при создании как раз тот самый чёрный фон. Вот его надо залить naative-ным. Потом уже рисовать, потом обратно из memDC в DC лить.