삽이 부서질 때까지 삽질

[MFC] 메뉴 생성하기 본문

MFC

[MFC] 메뉴 생성하기

xinfo 2016. 12. 1. 20:09

먼저 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을 참고하시길...

[이곳을 누르시면 MSDN에 갑니다.]


두번째는 기존 메뉴에 추가하여 생성하는 것을 진행해보겠습니다.



두번째 예제에서는 플래그를 다르게 주었기에 메뉴도 달라지는 것을 볼 수 있습니다.

Comments