티스토리 뷰

오늘은 CImage를 사용해서 외부 이미지를 출력하는 예제를 만들어 보겠습니다~

 

우선 원하는 외부 이미지를 다운로드하여

해당 프로그램의 소스 코드들이 있는 폴더 안에 넣어줍니다.

 

 

 

그리고 헤더 파일의 Dlg.h 파일에 들어가 private 형식으로

 CImage 변수로 m_image를 추가시켜줍니다.

나중에 소스 코드를 좀 더 추가하면

외부 이미지를 m_image 변수에 넣어줄 수 있습니다. 

// CImageLoadExamDlg 대화 상자
class CImageLoadExamDlg : public CDialogEx
{
private:
    CImage m_image; // cimage 변수 생성
 
public:
    CImageLoadExamDlg(CWnd* pParent = nullptr);    
 
// 대화 상자 데이터입니다.
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_IMAGELOADEXAM_DIALOG };
#endif
    //생략
cs

 

 

다음 소스 파일에 Dlg.cpp 파일의 onInitDialog 쪽으로 갑니다.

방금 선언한 m_image 변수에 이미지를 Load 시켜주기 위해서

m_image.Load(L"test.bmp"); 코드를 추가시켜줍니다.

BOOL CImageLoadExamDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();
 
    SetIcon(m_hIcon, TRUE);            
    SetIcon(m_hIcon, FALSE);        
 
    m_image.Load(L"test.bmp"); // cimage 변수에 외부 이미지 로드
 
    return TRUE;  
}
cs

 

 

그 다음으로 버튼을 누르면 이미지가 출력되게 만드는 예제이기 때문에

리소스 뷰의 Dialog로 갑니다.

이미지를 불러오기 위해 도구 상자에서 버튼 하나를 윈도우 창에

아래와 같이 그려줍니다.

 

 

그리고 해당 버튼을 누르면 이미지가 출력되는 이벤트를 만들기 위해서

버튼을 더블 클릭해줍니다.

그러면 버튼이 실행되었을 때 발생하는 이벤트 함수가 생성됩니다.

생성된 함수에 dc를 사용해야하기 때문에

CClientDC dc(this);를 선언해주고

0,0 좌표에 m_image에 저장해둔 이미지를 출력시키기 위해

m_image.Draw(dc, 0, 0); 코드를 추가시켜줍니다.

void CImageLoadExamDlg::OnBnClickedButton1()
{
    CClientDC dc(this);
    m_image.Draw(dc, 00); // x y 0,0 기준으로 그림이 그려진다.
}
cs

 

 

그리고 프로그램을 실행하시고 버튼을 누르면 사용자가 원하는 이미지가 출력되게 됩니다~:)