본문으로 바로가기

MDI(Multi Document Interface)로 개발하기1

category 개발언어/c++ 2016. 7. 18. 17:47

MFC로 프로젝트를 수행하다 보면, 자주 사용하는 아키텍쳐(architecture) 또는 윈도우형태(framework)가 있게 마련이다.

대부분 SDI(Single Document Interface)를 많이 사용 하는 것 같다..

 

간혹 MDI(Multi Document Interface)에 대해 잘 이해 하지 못하거나 무척 어려워하는 경우도 있어서 MDI 프로젝트를 꺼려하거나, MDI의 목적에 적합하지 않게 사용하는 경우도 종종 보았다.

 

MDI와 SDI의 차이점을 이해하고 활용하는 방법을 설명하고

주로 자주 사용하는 나만의 아키텍쳐(architecture)또는 framework를 미리 만들어 놓고자 이 글을 쓴다.

 

기본적으로 자주사용 하는 형태의 Framework원본을 만들어 놓고 이것을 복사해서 추가해야 할 내용을 별도로 코딩하는 전략을 선택 할 것이다.

 

여기서 설명할 Framework의 구성은 아래와 같은 기능을 기본적으로 포함하게 만들고

필요한 경우에 따라 코드를 추가 하거나 주석처리 하여 기능을 구현 할 것이다.

 

  • 아래
    • MDI(Multi Document Interface) 구성
    • 사이즈 조절 기능이 있는 Docking Toolbar 사용
    • 메뉴의 동적 생성
    • 동작상태를 보여주는 Rich Edit Log
    • Dialog Bar 구현
    • Document Type별 Form view 구성
    • View및 Dialog 의 배경색 적용
    • ATL COM을 적용한 하드웨어 Interface 구현
      • ATL COM을 상속해서(정확히는 Interface 구현) RS232 또는 TCP/IP 를 연결하도록 구현한다, 즉 소스코드 수정 없이 하드웨어 Interface를 바꿀 수 있도록 구현한다.
    • 일반 상속,Template 상속을 이용한 요구 조건 별 동작의 구현.

    을 기본적으로 구현 할 것이다.

    이렇게 해놓으면 웬만한 프로젝트의 기본적인 Frame을 미리 만들어 놓는 효과가 있어서

    개발 속도를 빠르게 할 수 있다.

 

 

 

실제 프로젝트에 적용하기 직전의 Framework는 그림과 같은 형태가 될 것이다.

이렇게 기본 Framework를 만들어 놓고 이것을 복사 해서, 수정해서 프로젝트를 진행하는 과정을 예제로 보여 줄 것이다.

이 과정에서 조금씩 설명을 추가하면서 개발하는 과정과 필요한 코드를 설명할 것이다.

 

 

 

자 이제 사설은 그만하고 프로젝트를 진행 해봅시다.

AppFrame이란 프로젝트를 SDI로 하나 생성합니다.

그리고 View는 FormView를 상속 받도록 합니다.

 

다음글