CPractice7_2View::CPractice7_2View()
{
// TODO: add construction code here m_nBitmapMode = 0;
}
void CPractice7_2View::OnDraw(CDC* pDC)
{
CPractice7_2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here CDC memdc; // 메모리의 DC 생성
memdc.CreateCompatibleDC(pDC); // 호환성 있는 메모리를 생성
CBitmap *oldbitmap = memdc.SelectObject(&bitmap); // 메모리DC에 비트맵을 설정
switch(m_nBitmapMode) // 비트맵 출력 모드에 따라
{
case 1 :
// 비트맵 출력
pDC->BitBlt(0, 0, 450, 85, &memdc, 0, 0, SRCCOPY);
break;
case 2 :
// 비트맵 2배 확대 출력
pDC->StretchBlt(0, 0, 450*2, 85*2, &memdc, 0, 0, 450, 85, SRCCOPY);
break;
case 3 :
// 비트맵 2배 축소 출력
pDC->StretchBlt(0, 0, 450/2, 85/2, &memdc, 0, 0, 450, 85, SRCCOPY);
break;
}
// DC를 복원
memdc.SelectObject(oldbitmap);
}
void CPractice7_2View::OnShowBitmap()
{
// TODO: Add your command handler code here
m_nBitmapMode = 1; // 비트맵 출력모드 변경
Invalidate(); // 화면 갱신
}
void CPractice7_2View::OnMagnifyBitmap()
{
// TODO: Add your command handler code here
m_nBitmapMode = 2; // 비트맵 2배 확대 출력모드 변경
Invalidate(); // 화면 갱신
}
void CPractice7_2View::OnReduceBitmap()
{
// TODO: Add your command handler code here
m_nBitmapMode = 3; // 비트맵 2배 축소 출력모드 변경
Invalidate(); // 화면 갱신
}