Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2008-04-09 01:48:34 ЛС | профиль | цитата
Соображение:
Для контрола на котором произошла инвалидность, WndProcBufferedDraw должно вызываться дважды: первый раз, понятно - это делает винда реагируя на Invalidate, второй раз это делают DoDrawDblBuffered и DoDrawChildrenDblBuffered через SendMessage

Это будет неправильно, если ДВА раза вместо одного это (WM_ERASEBKGND, WM_NCPAINT) отправится в default-обработку
Просто неправильно, и все.
Даже проверять не буду - вышестоящее соображение обладает более высоким приоритетом, чем функционирование каккого-то количества примеров.
Следствие простого профессионального принципа: из того что это работает сейчас вовсе НЕ СЛЕДУЕТ, что это будет работать всегда

Наша задача сегодня, чтобы это работало всегда. Это более сложно, чем заставить дышать какой-то конкретный код.
В принципе, это две разные профессии.
Аналог в электронике: цель у наладчика, рационализатора, радиолюбителя - оживить конкретное изделие
Вот они и пользуются методом тыка.
Цель у разработчика - чтобы это работало всегда (когда начнется выпуск, он уволится уже, и т.п.)

Вот поэтому у них и существует лозунг: встретил рационализатора - убей его (в командировку на объект-то им ездить приходится)
Это все не я придумал, естественно - на познание с нуля таких истин не всякой жизни хватит...
карма: 9

0