본문 바로가기
C & C++/MFC 컨트롤

팝업메뉴 만들기

by izen8 2011. 10. 31.
반응형

특정 버튼을 마우스로 클릭했을 때 CMenu 클래스를 이용하여 간단한 팝업 메뉴를 만들어 방법에
대해서 알아보겠습니다.
( 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); 
}
 
CPoint pos;
GetCursorPos(&pos);
 
// 마우스 위치에 팝업메뉴를 출력한다.
menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, this);
 
// 생성된 팝업 메뉴를 삭제한다.
menu.DestroyMenu();
 
 
<< AppenMenu 함수를 이용하여 작업한 실행화면 >>
 

 


2. resource에 등록된 메뉴를 이용하여 메뉴 추가하는 방법

// 먼저, resource에 팝업 메뉴에 사용 할 IDR_MY_MENU를 추가하고 하위 메뉴를 설정한다.

 
 
 
CMenu menu;
 
// 리소스에 설정한 메뉴정보를 읽어온다.
menu.LoadMenu(IDR_MY_MENU);
 
// 하위 메뉴의 첫번째 정보를 얻는다.
CMenu *p_sub_menu = menu.GetSubMenu(0);
 
CPoint pos;
GetCursorPos(&pos);
 
// 마우스 커서가 위치한 곳에 팝업메뉴를 출력한다.
p_sub_menu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pos.x, pos.y, this);
 
// 생성된 팝업 메뉴를 삭제한다.
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

댓글