GSI

Google
 
CView를 사용해서 해당 뷰를 만들고 그 위에 CStatic를 생성해서 처리를 하고 있습니다.
CStatic에는 해당 컬러 정보를 사용해서 드로잉이 되며, 마우스로 이동, 크기변경 등의 이벤트가
발생하게 되는데요.

이때 드로잉 되는 순서가 CView가 먼저 드로잉 되고, CStatic가 드로잉 되게 되면서
강한 Flicker 현상(번쩍임)이 발생을 하네요..

이것저것 처리를 해봐도 언뜻 보면 드로잉 순서로 인해서 어쩔 수 없을거 같다는 생각이 드네요.

그래서 조금 우회를 시켜서 CStatic의 드로잉 부분을 CView에 직접 그리기로 했습니다.
CStatic는 보이지는 않지만 자기 기능을 대신 하고 있는거구요.

이렇게 하니 Flicker는 해결이 되었네요 ^^..

원래 이렇게 하는걸까요?.. 아님 다른 방법이 있는 걸까요?
Posted by gsi
:

Win Form Flicker Free

더블 버퍼링 옵션이 따로 있기는 하지만 윈폼도 MFC와 마찬가지로 마우스로 오브젝트 처리시
Flicker 현상은 발생하기 마련이다.

여러가지 자료를 찾다가 VS2008에서 테스트해본 결과 잘 되는거 같다.
이 자료의 출처는 아래와 같다.
http://www.codeproject.com/KB/GDI-plus/flickerFreeDrawing.aspx

이 자료가 2003 버젼인지 지금 테스트 하고 있는 2008에 맞지 않아서 그냥 카피 복사^^
해서 이식 했다.

잘되는듯 하다.
우선 더 해봐야 할 것이 타이머를 통한 많은 객체의 이동 처리 및 다양한
효과들을 구현해 봐야 할거 같다.

관련코드 :
Posted by gsi
: