[MFC] Bitmap

Posted by seunggwon
2008. 11. 24. 14:40 IT Note/기타언어

1. 프로젝트 생성
 MFC exe, Dialog-Based, “MyBmp”
 2. 리소스 편집
 모든 default control들을 지우고, Dialog Resizing  가능 속성 선택
Menu 삽입 후 menu 항목 추가
 파일(&F) : 종료(&X)  (IDM_EXIT)
 도움말(&H) : ...에 관하여 (IDM_ABOUT)
Dialog box resource와 menu 연결(dialog box 특성)

3. 코드 작성
 복습
(IDM_EXIT, OnExit) (IDM_ABOUT, OnAbout)
 4. 그림을 추가
 그림파일 준비
 리소스 pop-up menu에서 [Insert] 선택
bitmap [Import]
 참고) 파일이 256 컬러 이하의 해상도의 BMP
IDB_BMPSAMP

5. 그림 표시
 CMyBmpDlg의 OnPaint 함수
else 파트에
CPaintDC dc(this);
HBITMAP hBmp = ::LoadBitmap(
  AfxGetInstanceHandle(),
   MAKEINTRESOURCE(IDB_BMPSAMP));
HDC hMemDC = ::CreateCompatibleDC(NULL);
SelectObject(hMemDC, hBmp);
StretchBlt(dc.m_hDC, 0, 0, 460, 257,
  hMemDC, 0, 0, 460, 257, SRCCOPY);
DeleteDC(hMemDC);
DeleteObject(hBmp);
 Compile & Build

6. 그림 크기 변경
CMyBmpDlg에 size member variable 추가
CSize m_size ;
WM_SIZE message handling (OnSize)
Class Wizard : CMyBmpDlg, WM_SIZE
m_size = CSize(cx, cy);
Invalidate();
OnPaint 코드 변경
StretchBlt(dc.m_hDC, 0, 0, m_size.cx, m_size.cy,
   hMemDC, 0, 0, 460, 257, SRCCOPY);

'IT Note > 기타언어' 카테고리의 다른 글

[MFC] Font  (0) 2008.11.24
[MFC] 비트맵(Bitmap) 출력  (0) 2008.11.24
[MFC] Shape  (0) 2008.11.24

[MFC] 비트맵(Bitmap) 출력

Posted by seunggwon
2008. 11. 24. 14:36 IT Note/기타언어

Client 영역 가운데에 비트맵 출력
1. 프로젝트 생성 - SDI, “Picture”
2. BMP화일 리소스에 추가
3. OnDraw 구현

CDC  memDC; CBitmap MyBit, *pOldBit;
BITMAP  bm;
MyBit.LoadBitmap(IDB_TOTO);
MyBit.GetObject(sizeof(BITMAP),&bm);
memDC.CreateCompatibleDC(pDC);
pOldBit=memDC.SelectObject(&MyBit);
CRect rect;      GetClientRect(rect);
int x=(rect.right-bm.bmWidth)/2;
int y=(rect.bottom-bm.bmHeight)/2;  
pDC->BitBlt(x,y,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBit);

'IT Note > 기타언어' 카테고리의 다른 글

[MFC] Bitmap  (0) 2008.11.24
[MFC] Shape  (0) 2008.11.24
[MFC] OnDraw 동작  (0) 2008.11.24