Привет! как сделать чтоб на время окно не обновлялось(перерисовка), пробывал LockWindowUpdate но с ней вообще глюки, это надо чтоб окно не моргало когда на ней рисовали... Заранее спасибо!
Код (Text): lock_update = 1; case WM_PAINT: if(lock_update) ValidateRect(hW,0); else{ /* ... */ } case WM_ERASEBKGND: if(!lock_update){ /* ... */ } return 1;
Попробуй старый способ, помоему двойная буферизация называца. На эту тему в MSDN примеры есть. Приблезительно так: 1 Создаеш буфер: - h = GetDC( NULL ); - h1 = CreateComportableDC( h, ...); - bn = CreateComportableBitmap( h, ...); - ReleaseDC( h ); - bo = SelectObject( h1, bn ); 2 Рисуеш в нем че нада. - DoMyPicture( h1 ); 3 Копируеш рисунок из буфера в своё окно: - h2 = GetDC( hWnd ); - BitBlt(...); - ReleaseDC( h2 ); 4 Удаляш буфер: - SelectObject( h1, bo ); - DeleteObject( bn ); - DeleteDC( h1 ); И ещо, чтобы заработало действительно немигая ( ну почти совсем ), рисуй не по сообщению WM_PAINT а вызывай какунибудь свою DoMyPicture() када нада рисунок обновить, и окно не очищяй по WM_ERASEBKGND. Кстати при изменении размеров окна DoMyPicture вызывать придется. case WM_PAINT: return TRUE; break; case WM_ERASEBKGND: return TRUE; break;