본문 바로가기
C & C++/MFC 컨트롤

[Dialog] 윈도우 그리기 lock 하기

by izen8 2011. 12. 14.
반응형

윈도우에 여러 가지를 그리는 경우, 윈도우가 깜빡 깜빡 거리는 경우가 많습니다.

 

OnPaint 에서 더블 버퍼링으로 이 문제를 해결할 수도 있지만 CTreeCtrl 과 같은 경우에는 적용하기 쉽지 않죠. 그래서 윈도우 그리기 자체를 lock 시킨 후, 모든 그리기가 완료되었을 때에 이를 해제해 주는 것이 깔끔한 윈도우 작성을 위한 훌륭한 방법입니다.

 

CWnd 클래스에 LockWindowUpdate 메소드와 UnlockWindowUpdate() 메소드가 위와 같은 기능을 위한 메소드입니다.

 

BOOL LockWindowUpdate( ); - Disables drawing in the given window.

void UnlockWindowUpdate(); -

Call this member function to unlock a window that was locked with CWnd::LockWindowUpdate.

 

저는 이 메소드를 CTreeCtrl 삭제 후, 추가하는 시간 동안 제대로 그려지지 않아서 트리가 하얀색으로 남아 있는 현상을 패치하기 위해서 사용하였습니다.

반응형

댓글