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 |