2013-01-16 7 views
0

이것은 C++ 용 - win32입니다. 기본적으로 이미지 (bmp)를 파일에서 HBITMAP으로로드하고 기본 창에 대한 장치 컨텍스트에 bitblitted했습니다.WM_PAINT 여러 번 Bitblitting?

이미지를 변경하려는 경우 어떻게 다시 부르겠습니까?

InvalidateRectangle() 및 UpdateWindow()를 호출했지만 창 컨트롤이 깜박입니다.

답변

2

일반적으로 지역을 무효화하고 (예 : InvalidateRect을 통해) WM_PAINT 처리기가 다시 칠할 수 있도록합니다. 깜박임이 자주 발생하는 이유는핸들러를 덮어 쓰지 않았거나 WM_PAINT 핸들러가 이중 버퍼링 페인팅을 수행하지 않았거나 필요한 것보다 큰 영역을 무효화 (다시 칠하기)했기 때문입니다.

이 페이지는 도움이 될 수 있습니다 : Flicker-free Drawing: Techniques to eliminate flicker from your applications

+0

아를 완벽하게 지금은 이해, 감사합니다. – user1255454