더북(TheBook)

소스 5-18에 나열된 함수들은 대부분 유사한 형태를 가지고 있다. 먼저 OnViewZoom1부터 OnViewZoom4까지의 함수들은 COMMAND 메시지 형식에 대한 메뉴 이벤트 처리 함수들이다. 이들 함수에서는 멤버 변수 m_nZoom 값을 해당 메뉴에 맞는 정숫값으로 설정한 후, SetScrollSizeToFit 함수와 Invalidate 함수를 호출하고 있다. SetScrollSizeToFit 함수는 스크롤바 관련 설정을 수행하는 함수이고, Invalidate 함수는 뷰 영역을 다시 그리도록 하는 함수이다.

OnUpdateViewZoom1부터 OnUpdateViewZoom4까지의 함수들은 UPDATE_COMMAND_UI 메시지 형식에 대한 메뉴 이벤트 처리 함수들이며, 이 함수들은 인자로 넘어온 CCmdUI 객체로부터 SetCheck 함수를 호출하여 메뉴 이름 앞에 체크 무늬를 추가하는 역할을 담당한다. 예를 들어 현재 영상 확대 비율을 나타내는 m_nZoom 변수의 값이 2인 경우, OnUpdateViewZoom2 함수에서만 SetCheck 함수의 인자 부분이 참이 되기 때문에 ID_VIEW_ZOOM2에 해당하는 [2배 보기] 메뉴 항목 앞에 체크 무늬가 나타난다. 상대적으로 [1배 보기], [3배 보기], [4배 보기] 메뉴 항목 앞에는 체크 무늬가 나타나지 않는다.

그림 5-43은 ImageTool 프로그램을 실행하여 영상을 2배 보기로 설정했을 때의 모습을 보여준다. lenna.bmp 파일이 원래 크기보다 2배 크게 화면에 출력되었고, 차일드 프레임에 스크롤바가 적당한 크기로 나타난 것을 볼 수 있다. 또한 메뉴에서 [2배 보기] 메뉴 항목 앞에 체크 무늬가 나타나 있는 것 또한 확인할 수 있다. 참고로 그림 5-43에서 차일드 프레임 윈도우는 마우스를 이용하여 임의로 크기를 키운 것이다.

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