더북(TheBook)

자, 이제 ImageTool 프로젝트가 생성되었다. ImageTool 프로젝트는 앞서 예제로 만들어봤던 First, BmpShow 등의 프로그램과 달리 프로젝트 스타일을 Visual Studio로 선택하였다. 이 경우, ImageTool 프로젝트에서 만들어지는 몇몇 클래스들의 부모 클래스에 변화가 생긴다. CImageToolApp 클래스의 부모 클래스는 CWinApp 클래스가 아니라 CWinAppEx 클래스로 변경된다. CMainFrameCChildFrame 클래스의 부모 클래스도 각각 CMDIFrameWndExCMDIChildWndEx로 변경된다. CWinAppEx, CMDIFrameWndEx, CMDIChildWndEx 등의 새로운 클래스들은 각각 CWinApp, CMDIFrameWnd, CMDIChildWnd 클래스로부터 상속받아 만들어진 클래스로서 탭 문서라던가 고급 프레임 창(탐색기 도킹창, 속성창, 출력창 등) 등을 지원하는 기능이 추가되어 있다. 그러나 프로그램의 중요한 동작 흐름은 CWinApp, CMDIFrameWnd, CMDIChildWnd 클래스와 거의 동일하므로 별도의 설명은 생략하겠다. MFC 응용 프로그램 마법사 마지막 단계에서 CImageToolView 클래스의 부모 클래스도 CView에서 CScrollView로 변경하였다. CImageToolDoc 클래스의 부모 클래스는 기존과 동일하게 CDocument이다. ImageTool 프로젝트에서 생성된 클래스들의 상속 관계를 그림 5-7에 도식화하였다.

그림 5-7 ImageTool 프로젝트에서 사용하는 클래스들의 상속 관계

프로젝트가 생성되었으니 일단 한 번 실행을 해보자. 그림 5-8은 MFC 응용 프로그램 마법사가 만들어준 ImageTool 프로그램의 실행 모습이다. 앞서 ‘MFC 표준’ 스타일을 사용하여 만들었던 First, BmpShow, IppCreate 등의 프로그램보다 툴바의 아이콘도 더 화려해졌고, 자세히 보면 메뉴바도 툴바처럼 이동이 가능한 형태로 바뀐 것을 볼 수 있다. 메뉴에서 [보기] > [도구 모음 및 도킹창] > [사용자 지정...]을 선택하면 메뉴, 툴바, 단축키 등을 자유롭게 변경할 수도 있다. 메인 프레임 하단에는 Visual Studio에서 봤었던 것과 유사한 모양의 출력창이 붙어 있는 것도 볼 수 있는데, 출력창은 추후 영상 처리 정보를 보여주는 용도로 사용할 것이다. 이제부터 ImageTool 프로그램에 BMP 파일 입출력, 비트맵 화면 출력, 복사 및 붙여넣기, 영상 확대하여 보기, 영상 정보 표시 등의 기능을 하나하나 추가해보자.

그림 5-8 MFC 응용 프로그램 마법사가 만들어준 ImageTool 실행 화면
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.