NOTICE 
GDI 에 해당하는 글 : 1 개
2005/06/30 :: 자동 더블버퍼링 DC (2)
훌륭하다.
GeSHi © 2004, Nigel McNie
  1. void CRangeSlider::OnPaint()
  2. {
  3.         CPaintDC RawDC(this); // device context for painting
  4.        
  5.         CMemDC dc(&RawDC);
  6.         dc.SetMapMode(MM_TEXT);
  7.        
  8.         if (m_bHorizontal)      {
  9.                 OnPaintHorizontal(dc);
  10.         } else {
  11.                 // Vertical Mode
  12.                 OnPaintVertical(dc);
  13.         }
  14. }
Parsed in 0.013 seconds

요 코드에서 CMemDC 란 녀석이 더블버퍼링을 해주는 DC 클래스이다. CDC를 상속받은 객체의 포인터를 넘겨주면 생성자에 자동으로 메모리 DC와 비트맵 객체를 생성해서 가지고 있는다.
이후에 다른 DrawCode를 이 CMemDC에 그려주고 나서 위의 코드처럼 Paint 함수가 끝나면서 이 변수의 소멸자가 호출될때 소멸자에서 자동으로 Bitblt 함수를 호출해서 원래 DC에 그려주는 구조다.

더블버퍼링 코드를 일일이 써주기 귀찮을때 사용해주면 좋을듯.
게다가 h 파일 하나로 구성되어 있으니 컴팩트!

간단하지만 유용한 클래스인듯. 근데 요즘은 GDI+를 많이 써서.. GDI+용으로 포팅해서 써도 괜찮을듯 하다.

2005/06/30 11:43 2005/06/30 11:43
 이전  1   다음 

전체 (842)
잡담 (529)
메모 (7)
감상 (109)
일기 (4)
참고 (187)
기록 (6)
fotowall :: ncloud tattertools RSS Feeds today : 59   yesterday : 112
total : 369461