CAFE

MFC/COM/멀티미디어

[MFC][27기 노준] 메뉴(Menu) 기술문서

작성자27기 노준|작성시간14.03.26|조회수503 목록 댓글 0

문서번호

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메시지를 추가한다.



컨텍스트 메뉴를 생성하여 해당 메뉴가 실행할 코드를 구현한다.

 



마우스 오른쪽 버튼을 클릭하면 해당 컨텍스트 메뉴가 정상적으로 작동함을 알 수 있다. 하지만 생성한 컨텍스트 메뉴가 메뉴 바에도 추가된 것을 볼 수 있는데, 이는 먼저 생성한 메뉴 바에서 메뉴를 생성하였기 때문이다.

메뉴 바와 컨텍스트 메뉴를 따로 생성하여 사용하고 싶다면 메뉴 리소스를 새로 추가하여 생성한다.

 



새로 추가한 리소스의 컨텍스트 메뉴가 실행된다.





첨부파일 메뉴 기술문서.docx


다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼