본문 바로가기

윈도우 출력

MFC 더블 버퍼링 [ Double Buffering ] 책의 608 페이지 에 있는 내용으로 프로젝트명은 RedrawDemo로 작성한다. 윈도우의 깜박임을 제거하는 최선의 방법은 더블 버퍼링 이다. 더블 버퍼링은 화면 DC에 직접 출력하는 것이 아닌 화면 DC와 호환이 되는 메모리 DC를 만들어서 모든 그리기 작업이 끝난 값을 집어넣어둔 후 메모리 DC의 내용을 화면 DC로 복사하는 기법이다. 이렇게 하면 화면의 크기를 변경하더라도 흰색 깜박임이 발생하지 않게 된다.[흰색으로 초기화 시키는게 아닌 메모리 DC의 내용을 가져오기만 하기 때문에.] 전에 쓴 OnPaint()함수의 코드에서 CPaintDC dc(this); 를 CBufferDC dc(this); 로 변경하고 CBufferDC 클래스를 프로젝트에 인클루드 하면 간단히 더블 버퍼링을 구현할 수 있다... 더보기
Visual C++ 2008 MFC Chapter 18 깜박임 방지 이번 챕터에 있는 더블버퍼링 을 공부하기 위한 챕터 18 공부. 응용 프로그램에서 화면의 크기를 조정할 때 대부분 화면 상 깜박임이 발생한다. 메인 프레임 윈도우 일부가 그러는 것은 어쩔 수 없다고 하더라도. 클라이언트 뷰 윈도우가 통째로 깜빡이면 그리 좋은 모습은 아니라 개선을 해야하는 필수 대상이라고 한다. 뭐 본적은 없지만 . WM_ERASEBKGND 메시지에 대하여 알아야 한다. --------- 화면 그리기의 구조 ------- 이 메시지는. WM_PAINT 메시지와 더불어 윈도우를 다시 그릴 때 발생하는 메시지 중 하나이다. 윈도우가 클라이언트 영역과 비 클라이언트 영역으로 구별되어 있고, 각각을 그리도록 하는 메시지 는 WM_PAINT 와 WM_ERASEBKGND 이다. 그러나 클라이언트 영.. 더보기