-
[MFC] 다이얼로그 메뉴와 버튼에서 띄우기MFC/Visual C++ 2008 2021. 1. 22. 11:09반응형
프로젝트를 진행하다 보면, 메인 다이얼로그 말고도 필요에 따라서 여러 형태의 다이얼로그가 필요한 경우가 있다.
이 포스팅에서는 다이얼로그를 추가해서 사용하는 방법에 대해서 알아보겠습니다.
프로젝트 생성 방법은 아래 글을 참고 해주시고, 프로젝트의 리소스 뷰에서 마우스 오른쪽 버튼을 눌러 Dialog 삽입을 클릭해 줍니다!
garage-fullof-dummy.tistory.com/51
리소스 뷰는 메뉴 바에서 보기>>다른창>>리소스 뷰에서 열거나 혹은 단축 키 Ctrl+Shift+E 를 이용해서 열어주세요!
다이얼로그 생성을 완료하면, 초기화면은 이렇게 나올겁니다. 다이얼로그를 불러 오는 방법 중에 제가 최근에 가장 많이 사용하고 있는 1. 메뉴 바에서 다이얼로그 띄우기 와 2. 버튼 클릭해서 다이얼로그 띄우기를 해 보려고 합니다.
1. 메뉴 바에서 다이얼로그 띄우기
garage-fullof-dummy.tistory.com/56
다이얼로그에 메뉴 바 추가하는 방법은 위에 포스팅을 참고해 주세요!
메뉴 바를 메인 다이얼로그에 추가했고, 비어 있는 다이얼로그도 리소스로 하나 추가 해 주었습니다.
보여 주기 용으로 Static Text를 한 개 끌어서 배치 해 주겠습니다!
Static Text에서 오른쪽 마우스를 클릭하면 속성 창으로 들어 갈 수 있는데, 속성 창의 Caption 문자를 변경해 주면,
아래 그림처럼 원하는 문구를 입력 할 수 있습니다.
속성>>Caption>>원하는 문구 입력
이제 이 다이얼로그를 원하는 곳에서 불러오려면 이 다이얼로그를 메인 클래스와 연결시켜 줄 클래스가 필요합니다.
다이얼로그에서 오른쪽 마우스를 클릭해서 클래스 추가를 선택 해줍니다.
아래 처럼 클래스 마법사가 나타나면, 원하는 이름으로 클래스 이름을 만들어 줍니다.
클래스 이름은 보통 C를 붙여서 만들어 줍니다. 클래스라는 표시를 해준 달까?
보시면 헤더 파일과 cpp 파일은 맨 앞의 C가 자동으로 떨어져서 생성되는 것을 볼 수 있습니다.
마침을 눌러서 클래스 마법사를 종료 해 줍니다.
클래스 뷰와 솔루션 탐색기에서 클래스와 헤더 그리고 cpp 파일이 추가 된 것을 볼 수 있습니다
프로젝트의 메인 다이얼로그 클래스에 #include "Stitch.h"로 방금 생성한 클래스를 추가해줍니다.
메뉴 바 추가하기 포스팅을 따라 하셨다면, 위에 그림처럼 메뉴가 이루 어져 있을 겁니다.
아니면, 자신의 프로젝트에서 다이얼로그를 띄우고 싶은 메뉴 목록을 선택해서 '이벤트 처리기 추가'를 선택합니다.
이벤트 처리기 마법사에서 메시지 형식으로는 'COMMAND' 를 선택하고, 클래스 목록은 다이얼로그를 띄울 클래스인 CTestDlg를 선택해줍니다!
(간혹, 클래스 목록을 바꾸는 경우가 있는데... 이벤트가 안 먹혀요... 공부가 더 필요한 부분입니다..)
추가 및 편집을 클릭해서 마무리 합니다.
c
12CStitch dlg;dlg.DoModal();cs 추가 및 편집 버튼을 누르면 자동으로 함수가 추가되는 위치로 이동이 되는데 여기서 위와 같이 코드를 추가해줍니다.
DoModal()은 해당 다이얼로그를 모달 창으로 띄워주겠다는 의미가 됩니다.
(32771)은 메뉴 목록에 대해서 부여된 아이디 입니다. 속성 창에서 편집하셔도 되고, 그대로 쓰셔도 무방합니다.
헷갈리지 않으려면 이름 바꿔주는 게 좋긴 합니다!
컴파일 해서 확인해 보면! 완성!
2. 버튼 클릭해서 다이얼로그 띄우기
메뉴 바를 성공 했다면 버튼 클릭해서 띄우는 것은 아주 아주 아주 쉬워요!
다른 UI 들은 신경 쓰지 마시고, 스티치 버튼 하나 추가 해주세요
(물론, 이 과정은 다이얼로그에 대한 클래스 추가가 완료된 상태에서 따라 해주세요!)
버튼으로 오른쪽 마우스를 클릭해 이벤트 처리기 추가를 선택합니다.
원하는 메시지 형식 버튼 클릭, 클래스 목록에서는 메인 클래스 선택해 주시고, 추가 및 편집으로 마무리
그러면 자동으로 함수가 추가 된 위치로 이동되는데, 아까 메뉴 바에서 했던 것과 동일한 코드를 추가 해줍니다!
728x90'MFC > Visual C++ 2008' 카테고리의 다른 글
[MFC]버튼(Button) 클릭으로 캡션 바꾸기 (0) 2021.01.25 [MFC]버튼(Button) 클릭 이벤트 처리하기 (0) 2021.01.25 [MFC] 다이얼로그(Dialog)에 메뉴 바 추가하기 (0) 2021.01.22 [MFC] dlgdata.cpp 에러 (0) 2021.01.20 [MFC] 디버깅 정보를 찾을 수 없거나 정보가 ~ (0) 2021.01.14