[Tip] CMenu를 이용하여 팝업메뉴 만들기

 트랙백 주소 : http://www.tipssoft.com/bulletin/tb.php/FAQ/244

 

팁스소프트에서 제공하는 프로그래밍과 관련된 자료나 정보들을 무단으로 복제하거나 게재하는 행위는
상호간의 신뢰를 무너뜨리는 행위이며, 법적인 문제를 야기할 수 있으므로 각별한 주의를 당부드립니다.

* 팁스소프트 저작권 정책 보기 –  http://www.tipssoft.com/bulletin/tb.php/FAQ/637

이 자료들은 팁스소프트에서 제공하는 [ 알짜배기 ] 프로그램을 이용하면 더 편리하게 볼수 있습니다.

* 알짜배기 프로그램 받기 –  http://www.tipssoft.com/bulletin/tb.php/QnA/8406

특정 버튼을 마우스로 클릭했을 때 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에 등록된 메뉴를 이용하여 작업한 실행화면 >>