mfc 로 프로젝트를 생성하면 다음과 같은 소스파일이 생성된다.
- ImageProcessing.cpp
- ImageProcessingDoc.cpp
- ImageProcessingView.cpp
- FileView.cpp
- MainFrm.cpp
…
이중에서 가장 중요한 소스는 위부터 3개다. 위 3개에 나머지 소스가 종속되어있다고 보면 된다.
ImagaProcessing.cpp 은 전체적인 흐름을 담당하고 ImageProcessingDoc.cpp 은 메뉴, 문서 등을 담당하며 ImageProcessingView.cpp 은 이미지가 보이는 화면을 담당한다.
먼저 ImageProcessingView.h를 보자 ImageProcessingView.cpp 에서 정의할 클래스의 변수, 메서드를 볼 수 있다.
class 선언으로 class를 만들 수 있다. ‘:’ 는 CView를 상속받는다는 의미다.
protected, private, public 등의 접근 제한자로 상황에 알맞은 변수, 함수를 선언할 수 있다.
질문 : protected 안에 CImageProcessingView()는 무엇일까??
클래스와 이름이 같고 함수의 반환형이 표시되지 않은 함수는 생성자이다.
생성자 앞에 ~ 표시가 있으면 소멸자이다.
위의 코드는 화면에 그리기 위한 필요코드이다.
이미지 파일을 불러와 화면에 띄우는 과정은 다음과 같다.
- Doc 에서 View의 함수에 접근하여 띄운다.
- Doc 에서 넘겨받은 정보로 이미지 정보를 셋팅한다.
- 화면에 이미지를 그린다.
화면에 그림을 그리기 위해 데이터를 셋팅하는 로직을 봐보자.
Doc에서 파일을 읽어와 image 정보 셋팅 함수에 인자를 전달하는 함수를 살펴보자
지금까지 이미지를 띄우는 윈도우를 만들어서 화면에 띄우기 위한 셋팅을 살펴보았다.
이제 윈도우에서 파일을 열어서 해당 사진을 화면에 뿌려주는 기능을 구현해보자.
먼저 클래스 및 구조체를 헤더파일에 정의하자.