본문 바로가기
컴퓨터/MFC_API

팝업 메뉴 (popup menu) 띄우기

by adnoctum 2009. 12. 9.
팝업 메뉴의 위치는 기본적으로 스크린 좌표계를 이용한다.

CMenu menu;
menu.LoadMenu(IDR_REPORT_MENU); // popup 메뉴가 들어 있는 메뉴를 불러 와서,
CMenu *pPopup = menu.GetSubMenu(1); // 두 번째 메뉴를 따내서

POINT pt = { 0 };
::GetCursorPos(&pt); // 마우스 커서의 좌표를 얻은 후
pPopup->TrackPopupMenu(TPM_CENTERALIGN, pt.x, pt.y, this); // 마우스 위치로 팝업을 띄운다.

예제 팝업

ReportMenu 하위 항목을 가져가기 위해 CMenu::GetSubMenu 에 1 을 인자로 넘긴다.



이 때, 좌표로 준 위치가 팝업에 대해 어느 기준인가를 결정하는 인자가 TrackPopupMenu의 첫 번째 인자이다. TPM_CENTERALIGN 으로 하면 인자로 준 x,y 위치가 팝업 메뉴의 가로의 중심이 된다.

TPM_CENTERALIGN 옵션

TPM_CENTERALIGN 을 주면 위처럼 인자로 준 x,y 좌표를 팝업메뉴의 중심에 위치하도록 팝업을 띄운다.







* 사용된 프로그램
+ GEOEditor