삽이 부서질 때까지 삽질
[MFC] 메뉴 생성하기 본문
먼저 MFC 응용프로그램 프로젝트를 생성하고 설정 옵션은 아래와 같습니다.
단계 |
변경 사항 |
응용 프로그램 종류 |
'단일 문서' 선택 '문서/뷰 아키텍처 지원' 해제 '비주얼 스타일 전환 사용' 해제 |
데이터베이스 지원 |
변경 사항 없음 |
사용자 인터페이스 기능 |
'클레식 메뉴 사용' 선택 |
고급 기능 |
모든 옵션 해제 |
메뉴 생성하는 방법은 두가지가 있어요.
1. 리소스를 이용한 메뉴 생성
2. 코드를 이용한 메뉴 생성
먼저 리소스 를 이용한 메뉴 생성법에 대해서 알아 볼게요.
1. 클래스 뷰에서 오른쪽 클릭한 뒤 추가에 리소스를 누르고
2. 메뉴를 추가
하면 됩니다. 그러면 아래 그림과같이 자동으로 메뉴에 ID가 추가가되고 IntiInstance 함수에는 IDR_MAINFRAME 이 추가가 되어있습니다.
여기서 보이는 LoadFrame은 프레임 윈도우를 생성한 후 프레임 윈도우와 프레임 윈도우 객체를 연결하는 역할을 해요. IDR_MAINFRAME 값을 이용해서 리소스(메뉴라던가 아이콘이라던가 가속기 등등)를 로드할 수있어요.
메뉴를 더블 클릭하거나 속성보기를 하시면 위 그림과 같이뜨는데 사용한 몇가지만 쓰면
ID |
항목을 구분할 수 있는 번호 |
Separator |
구분선 추가 여부 |
Caption |
화면에 보이는 문자열 이때 실행키를 주려면 문자 앞에 & 기호를 붙여서 사용 |
Checked |
체크 표시 여부 |
Grayed |
메뉴 항목이 흐리게 표시되어 사용할 수 없음을 나타내고자 할 때 |
Popup |
팝업 항목으로 전환 (펼쳐지는 형식으로 만듬) |
Right Justify |
윈도우 오른쪽 끝에 메뉴 항목을 표시 |
이렇게 됩니다.
기존 메뉴에 추가할 시에는 리소스 뷰에서 메뉴에 들어가면 있는 리소스를 더블클릭해줍니다.
그리고 원하시는 메뉴를 추가하시면 됩니다.
두번째는 코드를 이용해서 메뉴를 만들게요.
[코드를 이용해서 하는건 타자를 좋아하지 않는 이상 귀찮.... 네요... ㅎ....]
코드를 이용한 메뉴 제작 첫번째는 기존 메뉴를 제거하고 새롭게 정의한 메뉴를 설정하겠습니다.
메뉴 생성은 프레임 윈도우에 있음으로 MainFrm.cpp 에 있는 OnCreate 함수 가장 아래 줄에 코드를 추가합니다~
코드를 추가하면 위와 같이 생성이 됩니다.
CreateMenu는 최상위 메뉴를 만들고 객체와 연결
CreatePopupMenu 는 팝업 메뉴를 만들고 메뉴 객체와 연결
AppendMenu(플래그, 항목 ID, 항목 이름) 는 항목을 메뉴에 추가
플래그에는 다양한게 있으니 MSDN을 참고하시길...
두번째는 기존 메뉴에 추가하여 생성하는 것을 진행해보겠습니다.
두번째 예제에서는 플래그를 다르게 주었기에 메뉴도 달라지는 것을 볼 수 있습니다.
'MFC' 카테고리의 다른 글
[MFC] SDI 간단 분석 (0) | 2016.12.06 |
---|---|
[MFC] 텍스트 파일이 아닌 확장 메타파일 형식으로 저장 (0) | 2016.12.06 |
[MFC] 파일 저장 및 읽기(직렬화) (0) | 2016.12.06 |
[MFC] 메뉴 명령 처리 (0) | 2016.12.02 |
[MFC] 구조 및 기본 클래스 (0) | 2016.12.01 |