|
문서번호 |
2014-NJ-001 |
보존기간 |
5년 |
보고일자 |
2014.03.26(수) |
작성자 |
노 준 |
|
|
확인 |
메뉴
(Menu)
2014년 3월
선문 비트 27기 노준
목차
1. Menu란? --------------------------- 3
1.1. 개요 --------------------------- 3
2. Menu Class 멤버 함수--------------------- 4
3. Popup Menu 스타일 --------------------- 5
4. Menu 만들기 -------------------------- 6
4.1. 메뉴 ---------------------------- 6
4.2. 컨텍스트 메뉴 ----------------------- 9
1. Menu란?
1.1 개요
메뉴 바 (Menu Bar)
팝업 메뉴 (Popup Menu)
메뉴는 명령을 일일이 암기할 필요없이 키보드나 마우스로 원하는 항목을 찾아 선택하여 사용하는 기술이다. 이미 오래전의 도스 시절부터 사용되어 왔기 때문에 대부분 사람이 메뉴의 필요성이나 사용 방법에 대해서는 잘 알고 있다.
1. 메뉴 클래스 멤버 함수
AppendMenu |
메뉴의 끝에 새 항목을 추가한다. |
Attach |
CMenu 객체로부터 윈도우 메뉴 핸들을 붙인다. |
CheckMenuItem |
옆에 확인 표시가 배치하거나 메뉴 항목 팝업 메뉴에서 확인 표시를 제거한다. |
CheckMenuRadioItem |
팝업 메뉴의 아이템 옆에 라디오 버튼을 표시하고, 그룹 내에 있는 다른 메뉴에서는 라디오 버튼을 삭제한다. |
CreateMenu |
빈 메뉴를 생성하고 CMenu 객체에 부가한다. |
CreatePopupMenu |
빈 팝업 메뉴를 생성하고 CMenu 객체에 부가한다. |
DeleteMenu |
메뉴에서 특정 아이템을 삭제한다. 만약 메뉴 아이템에 연결된 팝업 메뉴가 존재한다면, 팝업 메뉴의 핸들을 소멸하고, 사용된 메모리를 해제한다. |
DeleteTempMap |
FromHandle 멤버 함수에 의해 생성된 임시 CMenu 객체를 삭제한다. |
DestroyMenu |
CMenu 객체에 부가된 메뉴를 소멸시키고 메뉴가 차지하고 있던 메모리를 해제한다. |
Detach |
CMenu 객체로부터 윈도우 핸들을 분리하고, 반환한다. |
DrawItem |
메뉴 변경의 시각적 측면이 프레임워크에서 호출된다. |
EnableMenuItem |
메뉴 아이템을 활성화, 비활성화, 또는 희미하게 만든다. |
FromHandle |
윈도우 메뉴 핸들을 부여한 CMenu 객체에 대한 포인터를 반환한다. |
GetDefaultItem |
지정된 메뉴의 기본 메뉴 항목을 결정한다. |
GetMenuItemCount |
팝업 메뉴 또는 최상위 레벨 메뉴에 있는 아이템의 개수를 얻는다. |
GetMenuItemID |
지정된 위치에 있는 메뉴 아이템의 식별자를 얻는다. |
GetMenuState |
지정된 메뉴 아이템의 상태 또는 팝업 메뉴 내의 아이템의 개수를 반환한다. |
GetSafeHmenu |
CMenu 객체에 의해 보호된 m_hMenu를 반환한다. |
GetSubMenu |
팝업 메뉴의 포인터를 얻는다. |
InsertMenu |
지정된 위치에 새로운 메뉴 아이템을 삽입하고, 밑에 있는 아이템을 아래로 이동시킨다. |
InsertMenuItem |
지정된 위치에 새로운 메뉴 아이템을 삽입한다. |
LoadMenu |
메뉴 리소스를 로드하고 CMenu 객체에 부가한다. |
LoadMenuIndirect |
CMenu 객체에 부가된 메뉴를 소멸시키고 메뉴가 차지하고 있던 메모리를 해제한다. |
ModifyMenu |
지정된 위치에 존재하는 메뉴 아이템을 변경한다. |
RemoveMenu |
지정된 메뉴에서 팝업 메뉴와 연관된 메뉴 아이템을 삭제한다. |
SetDefaultItem |
지정된 메뉴의 기본 메뉴 항목을 설정한다. |
SetMenuContextHelpId |
메뉴와 연관되도록 도움말 컨텍스트 ID를 설정한다. |
SetMenuItemInfo |
메뉴 항목에 대한 정보를 변경한다. |
TrackPopupMenu |
특정 위치에서 떠 있는 팝업 메뉴를 보여주고, 팝업 메뉴에서 아이템의 선택을 추적한다. |
2. Popup Menu 스타일
인수 |
설명 |
TPM_CENTERALIGN |
팝업 메뉴를 지정한 위치에서 수평 중앙 정렬한다. |
TPM_LEFTALIGN |
팝업 메뉴를 지정한 위치에서 좌측 정렬한다. |
TPM_RIGHTALIGN |
팝업 메뉴를 지정한 위치에서 우측 정렬한다. |
TPM_BOTTOMALIGN |
팝업 메뉴를 지정한 위치에서 바닥에 정렬한다. |
TPM_VCENTERALIGN |
팝업 메뉴를 지정한 위치에서 위쪽에 정렬한다. |
TPM_LEFTBUTTON |
팝업 메뉴를 지정한 위치에서 수직 중앙 정렬한다. |
TPM_LEFTBUTTON |
마우스 왼쪽 버튼을 눌러 팝업 메뉴를 선택한다. |
TPM_RIGHTBUTTON |
마우스 왼쪽 버튼은 물론 오른쪽 버튼을 눌러서도 선택할 수 있도록 한다. |
TPM_RETURNCMD |
선택한 명령의 ID를 즉시 리턴한다. 이 플래그가 없을 경우 성공 여부만 리턴한다. |
3. 메뉴 만들기
2.1 메뉴
리소스에 새 메뉴를 추가해준다.
추가한 메뉴에 각각의 팝업 메뉴를 설정해 준 후 ID를 설정해준다.
메뉴를 사용할 다이얼로그의 속성에서 해당 메뉴를 연결해준다.
실행화면을 보면 메뉴가 정상적으로 생성된다.
생성된 팝업메뉴에 기능을 구현하려면 우선 이벤트 처리기를 추가한다.
생성된 처리기 내에 자신이 사용할 기능을 추가한다.
생성한 메뉴를 선택하면 위에서 구현한 메시지가 실행된다.
2.2 컨텍스트 메뉴
컨텍스트 메뉴는 사용자가 인터페이스 안에서 어떠한 항목을 클릭 할 때 뜨는 팝업메뉴 이며, 보통 마우스 오른쪽 버튼을 누름으로써 사용할 수 있다.
메뉴를 새로 설정한 후 ID를 설정해준다.
클래스 마법사를 이용하여 WM_CONTEXTMENU메시지를 추가한다.
컨텍스트 메뉴를 생성하여 해당 메뉴가 실행할 코드를 구현한다.
마우스 오른쪽 버튼을 클릭하면 해당 컨텍스트 메뉴가 정상적으로 작동함을 알 수 있다. 하지만 생성한 컨텍스트 메뉴가 메뉴 바에도 추가된 것을 볼 수 있는데, 이는 먼저 생성한 메뉴 바에서 메뉴를 생성하였기 때문이다.
메뉴 바와 컨텍스트 메뉴를 따로 생성하여 사용하고 싶다면 메뉴 리소스를 새로 추가하여 생성한다.
새로 추가한 리소스의 컨텍스트 메뉴가 실행된다.
|