[MFC] Visual C++ 6.0 을 이용한 다이얼로그 창 띄우기 예제


학교 세미나 때문에 MFC를 처음 시작하게됬다. 책도없고 그저 인터넷 뒤져서 하나하나 알아가고 있다. 책을 사야 할지도 아직도 고민중이다.

우선 인터넷 도움을 좀 받다가 정 안되겠다 싶으면 책 하나 골라야겠다.

지금 부터 내가 머리빠지면서 알아낸 정보를 풀어볼까 한다.

뭐 이정도는 누군가에겐 정말 코웃음 치면서 볼 가장 기본적인 것일지도 모르겠지만 누군가에겐 사막의 오아시스가 될수도 있다고 생각하기에 자신은 없지만 하나 둘 올려볼까 한다.

왜냐..내가 조내 개 고생했거든--;;

이번 건 MFC를 시작하는 이들에게 가장 기본적인 부분이지만 또한 가장 힘든부분이다.
너무 헷갈렸거든;; 책이 있었으면 따라하다보면 알게되겠지만..

아무튼 시작한다.

우선 비주얼 C++ 6.0을 실행 시킨다.(여기선 비주얼 C++ 6.0 기준으로 설명하겠다)

그리고 메뉴 에서 File -> New 를 선택한다.(단축키 Ctrl + N)

사용자 삽입 이미지

우선 Project 탭을 선택후 목록중 MFC AppWizard(exe) 선택 오른쪽 Project Name은
본인의 프로젝트 명을 넣으면 된다. 그리고 OK!



사용자 삽입 이미지


다이얼로그 창 띄우기 예제다 보니 다른건 재끼고 우선 심플하게 테스트하기위해 다이얼로그 선택합니다.  그리고 Next!!


여기서 간단 설명

Single document 
단일 문서를 작업할 수 있는 어플리케이션을 생성한다. 이를 SDI(Single Document Interface)어플리케이션이라고 한다. 예를 들어 메모장(Notepad.exe)이 여기에 해당된다. 

Multiple document 
다중 문서를 작업할 수 있는 어플리케이션을 생성한다. 이를 MDI(Multiple Document Interface)어플리케이션이라고 한다. 예를 들어 시스템 편집기(Svsedit.exe)이 여기에 해당된다. 

Dialog based 
다이얼로그 기반의 어플리케이션을 생성한다. 예를 들어 윈도우 기본 오락인 지뢰찾기가 여기에 해당된다. 

리소스에 사용할 언어 
콤보 박스에서 사용할 리소스 언어를 선택한다. 자신의 시스템에 설치되어 있는 DLL에 따라서 지원하는 언어 항목이 다르게 나타난다. 



사용자 삽입 이미지

추가적인 기능들은 재끼고 그냥 Next. 나중에 필요하면 추가한다.




사용자 삽입 이미지


여기도 그냥 Next
또 나머지 부분은 차차 배워서 써먹자 지금 필요한건 창 띄우기다.



사용자 삽입 이미지

여기까지 왔으면 Finish !



사용자 삽입 이미지

OK 누른다.


사용자 삽입 이미지


두둥 왼쪽 탭에 Resource View를 선택하면 다이얼로그 폼이 보인다.

여따 막 집어 넣으면 된다.

우선 지금 보이는 창은 메인창이다. 부모 창이라고 한다.

자식 창 그러니깐 버튼 클릭시 뜨는 창을 하나 더 만들어 보자.

왼쪽 트리에서 Dialog 에 오른쪽 버튼을 눌러 Insert Dialog 를 선택한다.


사용자 삽입 이미지


요렇게 만들어진다.



사용자 삽입 이미지

뭐 구분하기 위해 글을 한번 적어 봅시다.

옆에 컨트롤 박스에서 Static Text 선택해서 글한번 끄적인다.

아 Static Text 을 갖다 놔도 글을 쓸수가 없다? 그래 그럼 아래 봅세.


사용자 삽입 이미지

오른쪽 버튼을 누르면 아래 Properties 가 있다. 고거 누른다.



사용자 삽입 이미지

그럼 이런게 뜬다. Caption 에 글을 적어본다. 그리고 그럼 수정 싸사삭!



사용자 삽입 이미지


아! 새로 생성한 다이얼로그는 그냥 못 쓴다. 클래스 등록을 한다.
메뉴 View -> ClassWizard (Ctrl + W) 를 눌러서 클래스로 등록한다.



사용자 삽입 이미지

클래스를 생성하고 OK



사용자 삽입 이미지

이름을 설정한다 CChildDlg 라고 적었다. 그냥 test 해도된다. 필요한 이름을 적어둔다.
대신 기억한다.

참고로

CChildDlg 라 지정하면 앞에 C가 사라지고 ChildDlg.cpp, ChildDlg.h 로 저장이된다.
(test 라 지정해도 test.cpp, test.h 라 저장되는데 C의 차이는 아직 모르겠다;; 나중에 해보니 둘다 작동은 된다.)

ChildDlg.h 는 기억해주다.



사용자 삽입 이미지

다 설정했으면 OK!



사용자 삽입 이미지
자식 창  설정 다 했으면 부모 창에서 버튼을 하나 생성합니다.
 
그리고 버튼을 누르면 편집 창으로 넘어갑니다.




사용자 삽입 이미지


아래 코드를 추가합니다.

void CTestDlg::OnButton1() {

CChildDlg dlg;   // CChildDlg 아까 지정한 요부분
dlg.DoModal();  // DoModal() 를 이용하여 창을 띄웁니다.

 
}



사용자 삽입 이미지

마지막으로 중요한부분. 이부분은 내가 잘못 알고있는 부분일지도 모른다.

여기저기 찾았는데 정보가 없더라.. 그래서 혼자 삽질하다 결국엔 알아냈는데.

괜히 힘들게 고생한거 같다. 다른 방법이 있다면 알려주길 바랍니다.

결론..

아까 작성한 CChildDlg 가
ChildDlg.h 로 저장이 된다. 요걸 인클루드 한다.

#include "ChildDlg.h"

일케 한다.

고럼 짜잔!!~~




사용자 삽입 이미지


요래 된다.


어떤가.... 쉽지않나??


모든게  처음이 중요하다 생각한다.

지금 하는일이 비록 어렵고 힘이든다 한들 이 처음만 참고 이겨낸다면 당신은 플머계의 에리뜨!~



이제 시작이다!!


아자아자!!!!! 화이팅!!!



자료는 공유되어야한다!~ 쭈욱!~
퍼가실때 출처 밝혀주세요.
http://starfactory.tistory.com



신고
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. 이전 댓글 더보기
  2. MFC초보2 2009.04.03 00:58 신고  댓글주소  수정/삭제  댓글쓰기

    과제하는데 mfc기본을 몰라서 고생하고 있었는데, 감사합니다.^^

  3. 와우!!! 2009.04.22 03:38 신고  댓글주소  수정/삭제  댓글쓰기

    결국 헤더파일 인클루드의 문제였는데ㅠ
    저도 지금 그거 몰라서 3일 헤매고 있었는데요ㅠ
    책에도 없고ㅠ
    감사합니다ㅠ 복받으실 거예요ㅠ

  4. ~반드시~ 2009.05.03 17:44 신고  댓글주소  수정/삭제  댓글쓰기

    고맙습니다.. 정말 사막의 오아시스 였습니다.

  5. LAINS 2009.05.28 20:50 신고  댓글주소  수정/삭제  댓글쓰기

    님 진심 감사해요 ㅠㅠ 복받으실겁니다 ㅠㅠ

  6. 롸운롸운 2009.11.17 18:29 신고  댓글주소  수정/삭제  댓글쓰기

    진심 감사합니다 ㅠㅠ
    오늘 달려야겠군요

  7. 엘리에셀 2010.03.09 17:44 신고  댓글주소  수정/삭제  댓글쓰기

    MFC는 나랑 안맞는다 생각했는데 님을 통해 다시한번 희망을 가져봅니다.. >.<
    감사합니다...ㅎㅎ

  8. 굿잡 2010.04.05 21:50 신고  댓글주소  수정/삭제  댓글쓰기

    많은 도움이 되엇어요

  9. VERY NICE 2010.05.23 20:56 신고  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다 ^^ devpia에서도 못찾은 정보를...

  10. 오오 2010.06.05 12:07 신고  댓글주소  수정/삭제  댓글쓰기

    와... 정말정말 감사합니다ㅠㅠ
    과제 하는데 초보를 위한 정보는 없어서 정말 몇일동안 헤매고 있었는데!!ㅠㅠ

  11. ;ㅁ; 2010.06.14 17:38 신고  댓글주소  수정/삭제  댓글쓰기

    완전 감사합니다 ;ㅁ; 막막했었는데 님 덕분에 숨 쉴수 있을 것 같아요 !

  12. -.- 2010.08.31 21:32 신고  댓글주소  수정/삭제  댓글쓰기

    아하... 기본이 이랬군요. 정말 감사합니다. 2008로 삽질 하긴 했지만요 ㅎㅎ

  13. 청이 2011.04.08 10:11 신고  댓글주소  수정/삭제  댓글쓰기

    찾던내용이 여기 있었군요. 진짜 도움 많이 됐습니다. 아무리 찾아봐도 힘들더라구요~~ 감사합니다.

  14. Favicon of http://starfactory.tistory.com BlogIcon StarFactory fortune2k 2011.04.15 04:47 신고  댓글주소  수정/삭제  댓글쓰기

    사정상 블로그를 관리 하지 못했습니다. 제가 올린 글을 보시고 도움이 되셨다면 저로선 영광입니다. 학습하시는데 참고가 되는 내용 앞으로 계속 올리도록 노력하겠습니다. 찾아 주셔서 감사합니다^^

  15. 완존감동 2011.05.11 10:33 신고  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다.
    덕분에 많은 도움이되고 있어요~~~+_+

  16. 감사합니다 2011.05.18 16:15 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다 ㅠㅠ
    정말 사막의 오아시스같습니다
    아.......ㅠㅠ
    정말정말 감사합니다 복받으실꺼예요! 꾸벅꾸벅

  17. 정말대박이에요 2011.12.03 12:37 신고  댓글주소  수정/삭제  댓글쓰기

    정말좋은거배웠어요

  18. 뻥 뚤렸어요 2012.02.14 00:54 신고  댓글주소  수정/삭제  댓글쓰기

    진짜 감사합니다~몇시간째 고민하던 부분이 뻥~ㅋㅋ

  19. 진짜 대박 2012.05.15 20:52 신고  댓글주소  수정/삭제  댓글쓰기

    와... 진짜 ㅋ ㅐ도움됬습니다... 알고리즘만 줄창 알면 뭐해 ㅠㅠ 이런거 몰라서 하나하나 만들어보징두 못했음..

    다른 소스 내용보면... 글은 이해가 가는데 정작 뭘 써야할지 난감했는데 ㅠ_ ㅠ이걸로 창 여는건 해결됬네요 감사해요

  20. 레알 대박 2012.05.27 14:20 신고  댓글주소  수정/삭제  댓글쓰기

    정말 대박이에요 ㅋㅋ
    mfc책이 2권이나 있는데 2권다 없던 내용이 ㅋㅋ
    여기에 있었네요 ㅋㅋ
    프로그램 구현하다가 정말 답답할 지경이였는데
    덥분에 한고비 넘겼습니다 일단은 ㅋㅋㅋ

  21. Favicon of http://blog.naver.com/woong17 BlogIcon 레알감사 2012.05.30 18:53 신고  댓글주소  수정/삭제  댓글쓰기

    사랑해요 님아 ㅠㅠㅠㅠㅠ 사막의 오아시스에요 레알