다음은 비트맵 파일을 불러와서 비트맵을 확대해서 보여주는 예제다.


void CBmpDisplayView::OnPaint()
{
 CPaintDC dc(this); // device context for painting
 // TODO: 여기에 메시지 처리기 코드를 추가합니다.
 // 그리기 메시지에 대해서는 CView::OnPaint()을(를) 호출하지 마십시오.


 CDC MemDC;
 BITMAP bmpInfo;
 MemDC.CreateCompatibleDC(&dc); //화면 DC 와 호환되는 MemDC 를 생성한다.
 
 CBitmap bmp; //비트맵 이미지를 가져오기 위해 객체를 생성하고
 bmp.LoadBitmap(IDB_Test_Image); //IDB_Test_Image에 해당하는 비트맵을 가져온다.
 bmp.GetBitmap(&bmpInfo); //IDB_Test_Image 에 해당하는 비트맵에 대한 정보를 bmpInfo에다 넣는다. 
 
 CBitmap *pOldBmp = MemDC.SelectObject(&bmp); //메모리 DC 에다가 IDB_Test_Image에 해당하는 비트맵을 넣는다
 dc.BitBlt(100,100, 500, 500, &MemDC,300,300, SRCCOPY);//MemDC 에 있는 비트맵을 화면 DC로 전송한다.
 //메모리DC에 있는 비트맵의 300,300 위치에서 가져와서 화면 100,100 좌표에 500,500만큼 보여라.
 //레스터 연산에 자주 쓰이는 것에는 NOTSCRCOPY(반전), DSTINVERT(반전), SRCAND(원본과 대상을 AND연산)
 //원본 : dc.BitBlt(0,0,bmpInfo.bmWidth, bmpInfo.bmHeight, ~~); 나머지는 같다.


 dc.StretchBlt(100,100,250*4,300*4, &MemDC, 300,300, 300,300, SRCCOPY);
 //3,4번째가 확대를 지정하고 나머지는 위와 같다.
 MemDC.SelectObject(pOldBmp);

 //이것들은 비트맵 이미지를 다룬 것이다. 다른 이미지 포멧들은 CImage 클래스를 이용해야한다.
}

'Windows > MFC' 카테고리의 다른 글

CImage 클래스  (0) 2011.11.14
고급 이미지 출력 함수 ( TransparentBlt() , AlphaBlend() )  (0) 2011.11.14
DrawText() 함수 예제 및 연습  (0) 2011.11.13
직접 버튼 그리기  (0) 2011.11.13
글꼴과 문자열 다루기  (0) 2011.11.13

+ Recent posts