삽이 부서질 때까지 삽질

[MFC] 두 개의 도큐먼트 타입 지원하는 MDI 만들기 본문

MFC

[MFC] 두 개의 도큐먼트 타입 지원하는 MDI 만들기

xinfo 2016. 12. 11. 16:40

전 글에서 언급했던 두 개의 도큐먼트 타입을 지원하는걸 만들어볼게요.

맛보기 1 글에서 사용했던 프로젝트를 사용하니 없으시면 그 글을 보시고 만드시면 되겠습니다.

[MDI 맛보기 1 글 보러가기]


먼저 글자 이외에 클릭하면 원을 찍는 새로운 도큐먼트를 만들어볼게요.

MFC 클래스를 추가해주세요. 새로운 도큐먼트니 CDocument와 View가 필요하겠죠.


원을 저장하는 CircleDoc.h에서 CArray 를 만들어주고 CircleDoc.cpp 에서 초기화를 해줍니다.


CircleView.cpp 에 왼쪽 클릭하면 발생하는 메세지 핸들러를 추가하고 좌표를 저장하는 코드를 작성합니다.

그리고 OnDraw에 원을 출력하는 코드를 작성합니다.



리소스 뷰 전환 후 String에 IDR_Circle_Type 를 추가합니다. 그리고 캡션에는 아래와 같이 줍니다.


이때 IDR_MDITestTYPE 캡션을 복사해서 형태에 맞게 변환해주시면 편합니다.

\nMDITest\nMDITest\nMDITest Files (*.mdi)\n.mdi\nMDITest.Document\nMDITest.Document


\nCircle\nCircle\nCricle Files (*.cir)\n.cir\nCircle.Document\nCircle.Document


마지막으로 도큐먼트 템플릿을 생성하고 등록하는 코드를 MDITest.cpp의 BOOL CMDITestApp::InitInstance() 에 추가해줍니다. 이렇게 되면 도큐먼트에 따라 나오는 메뉴가 달라진다.


완성하면 아래처럼 됩니다.


'MFC' 카테고리의 다른 글

[MFC] MDI 맛보기 2  (0) 2016.12.11
[MFC] MDI 맛보기 1  (0) 2016.12.11
[MFC] 정적 분할 윈도우  (0) 2016.12.07
[MFC] 동적 분할 윈도우  (0) 2016.12.06
[MFC] SDI 간단 분석  (0) 2016.12.06
Comments