본문 바로가기
개발언어/C++

마우스 위치에 하위 메뉴 출력하기

by 엔돌슨 2010. 5. 26.
반응형

마우스 위치에 하위 메뉴 출력하기

 

마우스 클릭하 위치를 받아 POINT p 자료형으로 받는다.
:: GetCursorPos(&p); 포커스의 위치를 받는다.

메뉴 리소스를 로드하고 받은 메뉴리소스를 해당 좌표에 서브메뉴로 출력한다.
출력후 메뉴리소스를 해제한다. (파괴함)



1                 //세부 메뉴를 보여줌
2                 HMENU hMenu,  hPopupMenu;
3
4                 // 해당 조건에 따라서 다른 메뉴를 보여줌.
5                 if(g_bCooperation)
6                     // 메뉴 리소스 로드
7                     hMenu = LoadMenu(_Module.m_hInst, MAKEINTRESOURCE(IDR_CHART_MENU_RSVCARD_WS));
8                 else
9                     hMenu = LoadMenu(_Module.m_hInst, MAKEINTRESOURCE(IDR_CHART_MENU_RSVCARD));
10
11                 // 하위메뉴를 얻음.
12                 hPopupMenu = GetSubMenu(hMenu, 0);
13
14                 // 현재 마우스 위치를 받아 메뉴를 출력함.
15                 POINT p;
16                 ::GetCursorPos(&p);
17
18                 // 메뉴를 출력
19                 TrackPopupMenu(hPopupMenu, TPM_LEFTALIGN, p.x, p.y,0, m_hWnd,NULL);
20                 DestroyMenu(hMenu); //메뉴리소스 해제