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

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를 상속 받도록 합니다.

“MDI(Multi Document Interface)로 개발하기1”의 38개의 댓글

  1. Fantastic goods from you, man. I have take into accout
    your stuff previous to and you are just extremely excellent.
    I really like what you have received right here, really like what you’re stating and
    the way in which you are saying it. You are making it entertaining and you still care for to keep it wise.
    I cant wait to learn far more from you. That is really a great site.

  2. My developer is trying to persuade me to move to .net from
    PHP. I have always disliked the idea because of the
    costs. But he’s tryiong none the less. I’ve been using WordPress on several websites for about a year and am anxious about switching to another platform.
    I have heard excellent things about blogengine.net.
    Is there a way I can import all my wordpress content into it?

    Any help would be really appreciated!

  3. Do you have a spam problem on this blog;
    I also am a blogger, and I was wanting to know your situation; many of us have developed some nice practices and we are looking to
    swap strategies with others, why not shoot me an email
    if interested.

  4. I simply want to say I’m beginner to weblog and truly enjoyed this web-site. Most likely I’m going to bookmark your blog post . You definitely come with good posts. Thanks for revealing your blog.

  5. A remarkable share, I simply provided this onto an associate that was doing a little evaluation on this. As well as he in fact purchased me morning meal due to the fact that I discovered it for him. smile. So let me reword that: Thnx for the treat! However yeah Thnkx for investing the moment to review this, I really feel strongly about it and love finding out more on this subject. If possible, as you become know-how, would certainly you mind updating your blog with more information? It is highly useful for me. Huge thumb up for this blog post!

  6. Hi there! Someone in my Myspace group shared this site with us so I came to give it a look. I’m definitely loving the information. I’m bookmarking and will be tweeting this to my followers! Outstanding blog and wonderful style and design.

  7. I?m impressed, I have to claim. Really rarely do I encounter a blog that?s both instructional as well as entertaining, and let me inform you, you have hit the nail on the head. Your idea is outstanding; the concern is something that inadequate people are talking intelligently around. I am really happy that I came across this in my look for something associating with this.

  8. There are some fascinating points in this write-up but I don?t know if I see every one of them center to heart. There is some credibility however I will certainly take hold point of view until I check into it further. Good short article, many thanks as well as we desire a lot more! Included in FeedBurner too

  9. Youre so great! I don’t expect Ive read anything such as this prior to. So wonderful to locate somebody with some initial thoughts on this subject. realy thank you for beginning this up. this site is something that is needed online, somebody with a little originality. beneficial work for bringing something brand-new to the web!

  10. Great article. I learn something extra difficult on various blog sites daily. It will always be promoting to check out web content from other writers and also practice a something from their shop. I?d like to use some with the content on my blog whether you don?t mind. Natually I?ll give you a web link on your web blog site. Thanks for sharing.

  11. The following time I read a blog, I hope that it does not disappoint me as much as this set. I imply, I understand it was my option to check out, but I in fact believed youd have something intriguing to say. All I listen to is a lot of yawping about something that you might fix if you werent also busy looking for attention.

  12. I’ve been browsing on-line more than 3 hours these days,
    but I never discovered any interesting article
    like yours. It’s lovely value sufficient for me. Personally,
    if all web owners and bloggers made good content material as
    you probably did, the web will be much more helpful than ever before.

  13. An interesting conversation is worth remark. I believe that you ought to compose a lot more on this subject, it could not be a frowned on subject however typically people are not nearly enough to talk on such subjects. To the next. Thanks

  14. I?m pleased, I have to claim. Truly hardly ever do I run into a blog that?s both instructional and enjoyable, as well as let me tell you, you have hit the nail on the head. Your idea is superior; the problem is something that not enough individuals are speaking smartly around. I am really pleased that I came across this in my search for something relating to this.

  15. There are definitely a lot of details like that to think about. That is a wonderful indicate bring up. I use the thoughts over as general inspiration yet plainly there are concerns like the one you raise where the most crucial thing will certainly be working in truthful good faith. I don?t understand if finest practices have actually arised around points like that, however I make certain that your work is clearly determined as an up for grabs. Both children as well as ladies feel the effect of just a moment?s enjoyment, for the remainder of their lives.

댓글 남기기