본문 바로가기

버튼 클릭시 다이얼로그 띄우고 다이얼로그에 익스플로러 열기

ko.konene 발행일 : 2012-07-16
반응형

들어가기 앞서.

다음으로 나오는 페이지는 버튼을 클릭했을때 다이얼로그를 띄우고 그 다이얼로그에 웹브라우저를 출력하는 방법입니다.

다시 말씀드리지만 MFC 책을 본지 3일째밖에 안되는지라 이게 정확한 방법인지는 모르겠고 책에도 나온내용이 아닌지라

여기저기 검색해서 알아낸 방법들을 약간 응용해 보았습니다.

 

STEP1. 새로운 MFC 응용프로그램을 만듭니다.

 

STEP2. 우측 도구모음에서 버튼을 생성합니다.

 

STEP3. 버튼을 생성하였으면 버튼의 속성을 만져줍니다. 알아보기 편하도록 ID를 정해주는것이 좋습니다.

저는 IDC_NewButton으로 지정해주었습니다.

 STEP4. 새로운 다이얼로그를 삽입하여 줍니다.

 

 STEP5. 이전에 올린 2012/07/16 - [컴퓨터/MFC] - 버튼 클릭시 다이얼로그 띄우기와 같은 방식입니다. 아시는분은 아랫쪽으로.

모르시는분은 그대로 진행합니다.

클래스 추가를 클릭합니다.

 

STEP6. 여기서 클래스이름을 저는 W_Dlg라 하였습니다. 헤더파일인 .h파일이름을 기억해주시고 마침을 눌러주세요.

 

STEP7. 새로 띄울 창에서 오른쪽 키를 누르시면 ActiveX컨트롤 삽입이 있습니다. 클릭합시다.

 

STEP8. ActiveX 컨트롤 삽입 창을 보시면 Microsoft Web Browser 가 있습니다. 클릭하도록 합니다.

 

 

STEP9. 옛 95시절에 보던 마이크로 소프트 마크가 자그마하게 들어가 있습니다.

이게 웹브라우저가 나타나는 크기 이므로 자신이 원하는 크기로 늘려줍니다.

 

STEP10. 웹브라우저를 클릭한 후 오른쪽키를 눌러 변수 추가를 눌러 변수추가 마법사를 띄웁니다.

여기서 변수이름 WC_Dlg를 입력하였습니다.

 

STEP11. 지금까지 아들다이얼로그를 수정해주었고 이제 엄마다이얼로그를 수정해주어야 합니다.

엄마다이얼로그에서 OnInitDialog()함수를 수정해줘야 새로운 창을 띄울 수 있습니다.  OnInitDialog합수에 서 윗쪽으로 끝까지 올려주세요. 이 과정은 STEP5와 바로 이어지는 부분입니다. 새로운 다이얼로그를 띄우기 위한 설정입니다.

2012/07/16 - [컴퓨터/MFC] - 버튼 클릭시 다이얼로그 띄우기 의 과정의 일부입니다.

 

끌까지 올리면 헤더 추가 명령줄에 #include "W_Dlg.h" 새로 띄울 다이얼로그의 이름 그러니까. 아까 STEP6에서 클래스 추가에 쓰셨던 이름입니다.

 

STEP12. 리소스뷰에서  엄마 다이얼로그를 클릭하여 버튼을 더블클릭하여 버튼을 수정해 줘야 합니다.

W_Dlg dlg;

dlg.DoModal();

이라 입력합니다. W_Dlg는 아까 STEP6에서 입력하셨던 새로 띄울 다이얼로그의 클래스이름입니다.

 

STEP13. 잘 뜨는지 확인해봅니다.

 

STEP14. 아무리 새로운 다이얼로그에 무작정 입력한다고해서 띄워주는 착한 아이가 아닙니다.. 아들다이얼로그는.

 클래스 뷰에서 아들다이얼로그 클래스명에 오른클릭하여 속성을 클릭하여 줍니다.

 

STEP15. 재정의를 눌러 OnInitDialog를 정의 해 줘야 합니다. 아래처럼 정의해주세요.

저도 처음인지라 처음엔 아들다이얼로그에 바로 OnInitDialog함수를 일일이 써줬었는데 안됬었습니다.

무식하게 C나 C++프로그래밍처럼 일일히 다 쓰지마시고 유식한척 속성에서 재정의에서 다 찾아서 함수등록하십시다.

 

FINAL. 함수가 등록되었습니다. 이제 수정해주셔야 하는데 TODO: 여기에 추가 추기화 작업을 추가합니다. 라는 메시지쪽에 넣어줍니다.

WC_Dlg.Navigate(_T(http://zenti.tistory.com),0,0,0,0);

뒤에 0,0,0,0 부위는 뭔지 모르겠네요;;; 뭔가 정의하라고 뜨는데 몰라서 0으로 씁니다T_T;

 

이렇게 하면 끝입니다. 하다보니 길어졌지만 쉽게 나중에도 알아볼 수 있도록 작성하려고 노력하였습니다.

요새는 캡쳐프로그램도 좋아져서 크기조절이 가능하기에 편집과정 없이 바로 쓸 수 있어서 좋네요.

 

어쨌거나 성공하시기 바랍니다^^

 

반응형

댓글