컴퓨터 공부/MFC 프로그래밍

[5월 15일 2교시] 메뉴 3

려리군 2009. 5. 15. 10:18

CMenu

윈도우의 HMENU 핸들을 캡슐화

메뉴를 만들고 띄우고 갱신하고 파괴하는 기능을 한다.

참고주소 : http://msdn.microsoft.com/en-us/library/d0s49351(VS.80).aspx


서브메뉴


CMenu* CMenu::GetSubMenu(int nPos) const;

참고주소 : http://msdn.microsoft.com/en-us/library/dtfc356x.aspx

위의 그림의 번호에 해당하는 메뉴만 얻한다.

메뉴에서 포함된 팝업 메뉴의 위치 값을 적는다. 위치 값은 첫번째 메뉴에 대해 0으로 시작한다. 팝업 메뉴 식별자는 이 함수에서 사용되지 않는다.



메뉴 수정, 추가, 삭제

CMenu::ModifyMenu(원래 아이디, 수정할 플래그 설정, 바꿀 아이디, 바꿀 문자열);

BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

하나의 메뉴 목록에 대해 수정한다.

참고주소 : http://msdn.microsoft.com/en-us/library/aa297121(VS.60).aspx

리턴 : 성공시 TRUE 실패시 FALSE

nPosition : nFlags에 따라 달라지는 값.

nFlags

 - MF_BYCOMMAND : 이 값이 없으면 디폴트로 사용. (바뀌기 전) ID를 nPosition 전달인자(파라미터)을 사용한다.

 - MF_BYPOSITION : 첫번째 목록을 0으로 하여 위치 값으로 nPosition 전달인자를 사용한다.

nIDNewItem : 새로운 메뉴 아이템 아이디

lpszNewItem : 새로운 메뉴 아이템의 문자열 내용.


CMenu::AppendMenu(추가할 형태 플래그 설정, 아이디, 문자열);

BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );

하나의 메뉴 목록에 대해 추가한다.

참고주소 : http://msdn.microsoft.com/en-us/library/aa297059(VS.60).aspx

리턴 : 성공시 TRUE 실패시 FALSE

nFlags : 메뉴가 추가될 때 새 메뉴 아이템의 상태에 관한 정보. 

nIDNewItem : 새로운 메뉴 아이템에 대한 아이디.

lpszNewItem : 새로운 메뉴 아이템의 문자열 내용.


CMenu::CheckMenuItem(아이디, 체크할 플래그 설정)

UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck);

하나의 메뉴 목록에 대해 체크나 체크 해제한다.

참고주소 : http://msdn.microsoft.com/en-us/library/sbd652b3(VS.80).aspx

리턴 : 메뉴 목록의 이전 상태(MF_CHECKED 혹은 MF_UNCHECKED), 없는 메뉴면 0xFFFFFFFF

nIDCheckItem : nCheck에 대한 아이디나 위치의 메뉴 아이템을 체크한다.

nCheck

 - MF_BYCOMMAND, MF_POSIOTION : 아이디 값이나 위치값.

 - MF_CHECKED, MF_UNCHECKED : 체크상태로 지정하거나 체크 해제 상태로 지정한다. (메뉴 아이디값에 대해)


CMenu::DeleteMenu(지울 형태 플래그 설정, 형태에 대한 값)

BOOL DeleteMenu( UINT nPosition, UINT nFlags );

하나의 메뉴 목록을 지운다.

참고주소 : http://msdn.microsoft.com/en-us/library/aa297079.aspx

리턴 : 성공시 TRUE 실패시 FALSE

nPosition : nFlags에 따라 달라지는 값.

MF_BYCOMMAND, MF_POSIOTION : 아이디 값이나 위치값.


시스템 메뉴 얻기

CWnd::GetSystemMenu(BOOL bRevert);

참고주소 : http://msdn.microsoft.com/en-us/library/aa249350(VS.60).aspx

시스템 메뉴를 얻는다.

bRevert FALSE면 현재 사용되는 컨트롤(시스템) 메뉴를 얻는다.

TRUE면 기본 상태로 시스템 메뉴를 되돌려 놓는다.