언어/C

MFC Image Viewer

조규현15 2015. 2. 9. 15:04
반응형

MFC 프로젝트 생성


리소스 뷰에서 MAINFRAME에 열기항목에 event를 추가한다.


OnFileOpen()에 아래와 같이 작성


// Get image file name

CFileDialog dlg(

TRUE, _T("BMP|CPP"), NULL,

OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, 

_T("Image Files (BMP,JPEG,JPG,JPE,JPG...)|*.BMP;*.JPEG;*.JPG;*.JPE;*.PGM|")

);

if( IDOK != dlg.DoModal() )

return;

//저는 std::string을 많이  사용해서 이방법을 씁니다. CString은 권장하지 않습니다.

CString sFilename = dlg.GetPathName();


// Detaches the bitmap from the CImage object and destroys the bitmap if image already loaded

if ( !image.IsNull() )    

image.Destroy();


image.Load(sFilename);

Invalidate();

UpdateWindow();


클래스 마법사에서 현재 View의 VM_PAINT를 추가하여

OnPaint() 메소드에 아래와 같이 작성한다.


CPaintDC dc(this); // device context for painting

// TODO: 여기에 메시지 처리기 코드를 추가합니다.

// 그리기 메시지에 대해서는 CView::OnPaint()을(를) 호출하지 마십시오.

if ( !image.IsNull() ) {

image.Draw(dc.m_hDC, 0, 0);

}


실행하면 끝~

반응형

'언어 > C' 카테고리의 다른 글

swap 매크로  (0) 2015.06.28
c에서 pointer와 swap의 관계  (0) 2015.06.28
file 복사 프로그램  (0) 2015.01.30
c File IO  (0) 2015.01.30
C 포인터 - 1  (0) 2015.01.14