프로그래밍/MFC

DC의 정의

이재만박사 2016. 11. 18. 03:16

- 윈도우즈에서 화면상에 무엇인가를 그리는 과정은 상상외로 복잡하다


- 대충 출력하기는 쉽지만 꼭 필요할 때 최대한 짧은 시간에 최소한의 영역만 그리면서도 깜빡임을 최소화 하는 것은 보통 어려운 것이 아니다


- 그리기를 얼마나 빠른 시간에 효율적으로 할 수 있는가에 따라 응용 프로그램의 질에 큰 차이가 나게 되므로 결코 가볍게 다룰 수 있는 주제가 아니다


- 윈도우즈에서 그리기가 복잡하고 난해한 근본적인 이유는 여러 개의 프로그램이 동시에 실행되는 멀티 태스킹 운영체제


- 윈도우즈 프로그램은 화면을 혼자서 사용하지 못하며 화면에 출력하는 것이 아니라 자신이 차지하고 있는 윈도우에 그것도 허가된 영역에만 그릴 수 있다


- 게다가 공간적으로 제약이 따를 뿐만 아니라 한 번 그려 놓은 그림이 항상 그대로 있다고 보장되지 않는 시간적 제약도 있다


- 복수 개의 프로그램이 같은 화면에 겹쳐서 공존하다 보니 서로 간에 지켜야 할 약속과 제약이 존재하고 그리는 과정도 복잡하다


- 이런 복잡한 과정을 조금이나마 단순화하기 위한 장치가 DC


- DC에는 그리기에 필요한 여러 가지 정보가 저장되어 있으며 프로그램은 DC의 정보를 참조하여 그리기를 하고 DC의 정보를 조작하여 그리는 방법을 변경