본문 바로가기

공부해봅시다/MFC/API

[MFC] Visual C++ 6.0 을 이용하여 창 띄우기 예제.

[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