더북(TheBook)

메뉴 항목과 툴바 버튼을 추가하였으면 이 메뉴 항목을 처리하는 메뉴 이벤트 처리기를 추가하자. 이 메뉴 이벤트 처리기는 메뉴 항목을 선택하였을 때와 툴바 버튼을 클릭하였을 때 공통으로 호출될 것이다. 히스토그램 메뉴 항목에서 마우스 오른쪽 버튼을 클릭한 후, 컨텍스트 메뉴에서 [이벤트 처리기 추가...] 메뉴 항목을 선택하자. 이벤트 처리기 마법사가 나타나면 표 6-15를 참조하여 OnViewHistogram 함수를 추가하자. OnViewHistogram 함수에 입력해야 하는 소스 코드는 소스 6-20에 나타내었다.

표 6-15 [히스토그램] 메뉴 이벤트 처리기 정보

명령 이름(ID)

처리 클래스

메시지 형식

처리기 이름

ID_VIEW_HISTOGRAM

CImageToolDoc

COMMAND

OnViewHistogram

소스 6-20 [히스토그램] 메뉴 이벤트 처리 함수(ImageTestDoc.cpp)
#include "HistogramDlg.h"void CImageToolDoc::OnViewHistogram()
{
    CHistogramDlg dlg;
    dlg.SetImage(&m_Dib);
    dlg.DoModal();
}

OnViewHistogram 함수에서는 CHistogramDlg 클래스의 인스턴스를 하나 생성하고, CHistogramDlg 클래스의 멤버 함수인 SetImage 함수를 이용하여 영상의 정보를 넘겨준다. 그리고 DoModal 함수를 이용하여 대화 상자를 화면에 나타내는 것으로 함수를 마치게 된다. CHistogramDlg 클래스를 사용하기 위하여 ImageTestDoc.cpp 파일의 맨 앞부분에 HistogramDLG.h 파일을 포함(#include)하였다.

그림 6-35는 ImageTool 프로그램을 실행하여 실제 영상의 히스토그램을 출력하는 모습을 보여준다. 입력 영상으로는 lenna.bmp 파일을 사용하였다. ImageTool 프로그램의 메뉴에서 [보기] > [히스토그램] 메뉴 항목을 선택하거나, 툴바에서 히스토그램 툴바 버튼을 클릭하면 히스토그램 대화 상자가 나타나면서 히스토그램을 보여준다.

그림 6-35 ImageTool 프로그램에서 [히스토그램] 보기 실행 화면
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.