반응형
특정 버튼을 마우스로 클릭했을 때 CMenu 클래스를 이용하여 간단한 팝업 메뉴를 만들어 방법에
대해서 알아보겠습니다.
( CMenu 클래스를 이용하여 메뉴를 추가하는 방법에는 2가지 방법을 제공하고 있으며 각각의 방법에
대해서 설명하도록 하겠습니다. )
대해서 알아보겠습니다.
( CMenu 클래스를 이용하여 메뉴를 추가하는 방법에는 2가지 방법을 제공하고 있으며 각각의 방법에
대해서 설명하도록 하겠습니다. )
1. AppenMenu 함수를 이용하여 메뉴 추가하는 방법
CMenu menu;
// 팝업 메뉴를 생성한다.
menu.CreatePopupMenu();
CString str;
for(int i = 0; i < 4; i++){
str.Format("%d번 메뉴", i+1);
// 팝업 메뉴에 메뉴를 추가한다.
// 명령아이디는 20000, 20001,... 순으로 자동 배열함
menu.AppendMenu(MF_STRING, 20000 + i, (LPCTSTR)str);
}
for(int i = 0; i < 4; i++){
str.Format("%d번 메뉴", i+1);
// 팝업 메뉴에 메뉴를 추가한다.
// 명령아이디는 20000, 20001,... 순으로 자동 배열함
menu.AppendMenu(MF_STRING, 20000 + i, (LPCTSTR)str);
}
CPoint pos;
GetCursorPos(&pos);
GetCursorPos(&pos);
// 마우스 위치에 팝업메뉴를 출력한다.
menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, this);
menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, this);
// 생성된 팝업 메뉴를 삭제한다.
menu.DestroyMenu();
menu.DestroyMenu();
<< AppenMenu 함수를 이용하여 작업한 실행화면 >>
2. resource에 등록된 메뉴를 이용하여 메뉴 추가하는 방법
// 먼저, resource에 팝업 메뉴에 사용 할 IDR_MY_MENU를 추가하고 하위 메뉴를 설정한다.
CMenu menu;
// 리소스에 설정한 메뉴정보를 읽어온다.
menu.LoadMenu(IDR_MY_MENU);
menu.LoadMenu(IDR_MY_MENU);
// 하위 메뉴의 첫번째 정보를 얻는다.
CMenu *p_sub_menu = menu.GetSubMenu(0);
CMenu *p_sub_menu = menu.GetSubMenu(0);
CPoint pos;
GetCursorPos(&pos);
GetCursorPos(&pos);
// 마우스 커서가 위치한 곳에 팝업메뉴를 출력한다.
p_sub_menu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, this);
p_sub_menu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, this);
// 생성된 팝업 메뉴를 삭제한다.
menu.DestroyMenu();
menu.DestroyMenu();
<< resource에 등록된 메뉴를 이용하여 작업한 실행화면 >>
반응형
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
타이틀바에 제목없음 제거하기 (0) | 2011.10.31 |
---|---|
타이틀바없이 다이얼로그 이동 (0) | 2011.10.31 |
트레이 아이콘 만들기 (0) | 2011.10.26 |
날짜 구하기 (0) | 2011.10.26 |
리스트 컨트롤 색상 다루기 (0) | 2011.10.26 |
댓글