일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 인공지능
- 우리들교회
- probability
- MongoDB
- 데이터 과학
- Artificial Intelligence
- 빅 데이타
- 김양재 목사님
- R
- 빅데이타
- 빅 데이터
- data science
- nodeJS
- 주일설교
- WebGL
- Big Data
- 빅데이터
- 딥러닝
- No SQL
- node.js
- c++
- 확률
- Statistics
- openCV
- Deep learning
- 김양재
- Machine Learning
- 김양재 목사
- 몽고디비
- 통계
- Today
- Total
Scientific Computing & Data Science
[C/C++] MFC / CImage 클래스를 이용한 다양한 포맷의 이미지 출력 본문
Project Name | ImgOut |
Application Type | Single Document |
Document/View Architecture Support | Yes |
Resource | 한국어 |
Use Unicode Libraries | Yes |
Project Style | MFC Standard |
Visual Style and Colors | Windows Native/Default |
Use of MFC | Use MFC in a shared DLL |
[<atlimage.h> 헤더 추가]
"ImgOutView.cpp" 소스에 다음과 같이 <atlimage.h> 헤더를 추가한다:
// ImgOutView.cpp : implementation of the CImgOutView class
//
#include "stdafx.h"
// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail
// and search filter handlers and allows sharing of document code with that project.
#ifndef SHARED_HANDLERS
#include "ImgOut.h"
#endif
#include "ImgOutDoc.h"
#include "ImgOutView.h"
#include <atlimage.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
"ImgOutDoc.h" 헤더에 다음과 같이 <atlimage.h> 헤더를 추가한다:
// ImgOutDoc.h : interface of the CImgOutDoc class
//
#pragma once
#include <atlimage.h>
[CImgOutDoc 클래스에 멤버 추가]
"ImgOutDoc.h"
public:
CImage m_Img;
[ImgOutDoc 클래스에 OnOpenDocument() 함수 재정의]
Class View > CImgOutDoc > Property > Overrides > OnOpenDocument > <Add>OnOpenDocument
BOOL CImgOutDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; // 이미지 파일 로드 HRESULT hResult = m_Img.Load(lpszPathName); // 이미지 파일 로드 실행 시 에러 메시지 출력 if(FAILED(hResult)) { CString strTmp = _T("ERROR: Failed to load "); strTmp += lpszPathName; AfxMessageBox(strTmp); } return TRUE; }
[CImgOutView 클래스에 WM_PAINT 메시지 핸들러 함수 등록 및 작성]
Class View > CImgOutView > Property > WM_PAINT > <Add>OnPaint
void CImgOutView::OnPaint()
{
CPaintDC dc(this); // device context for painting
CImgOutDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// 로드된 이미지
CImage img = pDoc->m_Img;
// 화면 DC에 출력
if(img != NULL)
img.BitBlt(dc.m_hDC, 0, 0);
else
return;
}
[빌드 및 실행]
Ctrl + Shift + B
Ctrl + F5
'Programming > C&C++' 카테고리의 다른 글
[C/C++] 수동으로 구성해 본 VC++프로젝트 설정: ReleaseMinDependency (0) | 2014.06.19 |
---|---|
[C/C++] Example / ArrayList (0) | 2014.06.15 |
[C/C++] MFC / 비트맵 출력하기 (0) | 2014.06.14 |
[C/C++] Example / Copy Constructor (0) | 2014.06.12 |
[C/C++] Example / Assignment Operator (0) | 2014.06.12 |