Systems/Windows2008.06.09 16:06
이 책을 번역한지 꽤 시간이 지난거같습니다만, 최근에 이 책의 11장에 실린 예제에 관한 메일 두통을 받았습니다. 11장에 실린 예제가 이해하기 어렵다는 것이었습니다. 10장까지의 내용을 잘 따라하신 분이라면 그다지 큰 무리없이 하실 수 있을것 같은데 말이죠. 그래서 11장에 실린 내용에 잘못된 부분이 있나 검증도 해 볼겸, 한번 책의 예제를 그대로 따라해봤습니다.

사용자 삽입 이미지
우선 MFC AppWizard(exe)를 선택합니다.

사용자 삽입 이미지
SDI 프로그램을 만들어야 하니까, Single Document를 선택합니다.

사용자 삽입 이미지
대화상자를 하나 그립니다. 이 대화상자의 ID는 IDD_MAP_MODE로 해 놓습니다. 콤보 박스를 하나 그리고, 그 박스의 ID는 IDC_COMBO로 해 놓습니다. 여기까지는 간단합니다.

사용자 삽입 이미지
다이얼로그 박스를 다 그린다음에는 ctrl+W를 누르거나 다이얼로그 박스 그림을 더블클릭해서 해당 다이얼로그 박스에 대한 새로운 클래스를 만듭니다. 이름은 위와 같이 적어주면 됩니다.

사용자 삽입 이미지
그런 다음,  IDC_COMBO에 대한 멤버 변수를 추가합니다. 위의 화면에서 IDC_COMBO를 클릭한 다음에, Add Variable을 눌러주면 됩니다.

사용자 삽입 이미지
그러면 위와 같은 창이 뜨는데, 역시 위와 같이 입력해주고 OK하면 됩니다.

사용자 삽입 이미지
그런 다음에는 다이얼로그 박스 그림으로 돌아가서, 콤보 박스의 Property를 편집합니다. Data 부분에 위와 같이 적어주면 됩니다. 여러줄을 적으려면, 리턴 키를 누를 때 Ctrl키를 같이 누르면 됩니다.

사용자 삽입 이미지
이제 새로운 메뉴 항목을 보기(View) 아래에 추가할 차례입니다. 빈 곳을 더블클릭하면 아래와 같은 화면이 나타날 것입니다.

사용자 삽입 이미지
위의 화면에 역시 위와 같이 입력해 줍니다.

사용자 삽입 이미지
그런 다음에는 추가된 메뉴위에서 마우스 오른쪽 버튼을 클릭한 다음에 ClassWizard를 선택합니다.

사용자 삽입 이미지
위와 같이, Object ID가운데에서는 ID_VIEW_MAP_MODE를 선택하고, 오른쪽에 나타나는 Messages 가운데에서는 COMMAND를 선택합니다. 그런 다음에 Add Function 버튼을 누릅니다.

사용자 삽입 이미지
위와 같은 화면이 나타날텐데, 거기에 위와 같이 입력되어 나타날 것입니다. 그대로 OK 버튼을 누릅니다.

사용자 삽입 이미지
이제 소스 코드 편집창이 나타날 것인데, 거기에 책에 실린 소스코드(목록 11.3)를 입력합니다.

사용자 삽입 이미지
위와 같이 DCTestView.h 코드도 수정합니다.

사용자 삽입 이미지
include 해 주는 부분도 위와 같이 수정합니다.

사용자 삽입 이미지
이제 CDCTestView::OnDraw를 수정할 차례입니다. 위와 같이 선택한 다음에 (Ctrl + W를 누르면 나오는 화면입니다) 우측의 Edit Code 버튼을 누릅니다. 그런 다음 목록 11.5에 실린 코드를 입력합니다.

사용자 삽입 이미지
입력이 다 되었으면, 이제 마지막으로 CDCTestView 클래스의 생성자를 수정합니다.

사용자 삽입 이미지
코드를 정상적으로 입력하였다면 (그렇지 않았다면 에러메시지가 떴을 테지만) 위와 같은 메시지가 화면에 출력되는 것을 볼 수 있습니다. MAP MODE를 바꾸려면 아까 추가했던 메뉴 항목을 클릭하고 콤보 박스 안의 다른 항목을 선택한 다음 OK를 눌러주면 됩니다.

두 분이나 질문하실 만큼 그렇게 난감한 대목은 찾을수가 없네요. ^^;

아무튼, 위와 같이 하시면 되구요. 혹시 몰라서 예제 코드를 첨부합니다.


신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Books by Example2008.01.03 13:26
요즘들어 SW 분야의 명저들을 찾아 읽어보는 데 굉장히 많은 시간을 할애하고 있습니다. 최근에 보고 있는 책들 중 탁월하다고 생각하는 것으로는 "실용주의 프로그래머(The Pragmatic Programmers)", "생각하는 프로그래밍(Programming Pearls)", 그리고 "컴퓨터 프로그램의 구조와 해석(SICP)" 등이 있습니다.

보통 컴퓨터 분야의 책을 읽을 때, 많은 사람들이 연습문제는 건너뛰고 잘 풀어보질 않습니다. 하지만 저는 이 연습문제들에 본문에서 얻을 수 있는 지식 + 알파가 녹아있다고 믿습니다. SW 분야의 명저가 된 책들에는 이런 연습문제들이 풍부하고, 굳이 연습문제가 아니더라도 많은 예제들이 포함되어 있습니다.

이런 문제들을 풀어보고 프로그램을 만들 떄 마다, 이 블로그에 올려보도록 하겠습니다. 단순히 정리한다는 목적도 있고, 저와 비슷한 고민을 하는 다른 사람들에게 유용한 정보를 제공하고자 하는 목적도 있고, 보다 많은 사람들을 이런 명저로 이끈다는 목적도 있습니다. 부디 제가 올리는 모든 문제들과 해설이, 그런 목적에 충실하기를 바랍니다.

현재까지 이와 관련하여 올려진 글들의 목록은 다음과 같습니다. 

"컴퓨터 프로그램의 구조와 해석(SICP)"


"생각하는 프로그래밍(Programming Pearls)"

이 목록은 이 주제에 대한 새로운 포스팅이 올라올 때 마다 업데이트됩니다.

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 저는 스터디 그룹에서 온라인으로 공부한 흔적은 남기기로 했기에
    연습문제를 블로그에 올리기로 했습니다.
    (아직 위키에 적응이 완료되지 않아서....OTL....)
    계속 좋은 글 부탁드립니다.^^

    2008.01.03 16:07 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 지나가다 글 남깁니다.
    저는 운좋게도 학부때 관련 교재로 수업을 할 수 있었죠.
    좀 힘들긴 했지만 가장 인상적인 과목 중 하나였습니다.
    시간 나면 다시 한 번 보고 싶네요.
    연습문제 답 모아놓는 위키도 있으니 참고하세요.
    http://sicp.org.ua/sicp

    2008.01.03 23:50 신고 [ ADDR : EDIT/ DEL : REPLY ]