더북(TheBook)

OnNewDocument 함수에서는 새로 만들기 대화 상자를 띄우고, 사용자가 [확인] 버튼을 눌렀을 때에만 if 문 블록 안쪽 코드가 실행된다. 이때 사용자가 선택한 영상의 타입에 따라 CreateGrayBitmap 함수 또는 CreateRgbBitmap 함수가 호출된다. 이때 사용자가 입력한 영상의 가로 및 세로 크기는 dlg.m_nWidthdlg.m_nHeight 형태로 알아낼 수 있다.

소스 5-9의 맨 윗 줄에 보면 #include "FileNewDlg.h" 문장을 새로 추가한 것을 볼 수 있다. 이는 OnNewDocument 함수에서 CFileNewDlg 클래스를 사용하였기 때문이다. 만약 #include "FileNewDlg.h" 문장을 추가하지 않고 프로그램을 빌드하면 컴파일러는 다음과 같은 에러 메시지를 보여줄 것이다.

error C2065: 'CFileNewDlg' : 선언되지 않은 식별자입니다.

실제로는 위 에러 메시지 외에도 더 많은 에러 메시지가 나타나게 되는데, 근본적인 원은 컴파일러가 CFileNewDlg 클래스에 대해 알지 못하기 때문이다. 그러므로 새로 추가한 대화 상자를 사용할 때에는 해당 대화 상자를 표현하는 클래스 정의 파일을 반드시 포함(#include)해주어야 한다.

지금까지 새로 만들기 대화 상자를 만들고 화면에 띄우는 코드까지 모두 작성하였다. 이제 ImageTool 프로그램을 실행하여 [파일] > [새로 만들기] 메뉴를 선택해보자. 그림 5-32는 ImageTool을 실행하여 256×256 크기의 새 영상을 만들고, 다시 [파일] > [새로 만들기]를 선택한 화면이다. 영상 새로 만들기 기능이 정상적으로 동작하는 것을 확인할 수 있다. 현재는 소스 코드 간소화를 위해 새로 만드는 영상의 색상을 모두 검정색으로 만들고 있지만, 향후 초기 색상을 지정할 수 있도록 업그레이드를 해보는 것도 좋을 것 같다.

그림 5-32 [새로 만들기] 메뉴 실행 화면
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.