팝업 메뉴의 위치는 기본적으로 스크린 좌표계를 이용한다.
이 때, 좌표로 준 위치가 팝업에 대해 어느 기준인가를 결정하는 인자가 TrackPopupMenu의 첫 번째 인자이다. TPM_CENTERALIGN 으로 하면 인자로 준 x,y 위치가 팝업 메뉴의 가로의 중심이 된다.
* 사용된 프로그램
+ GEOEditor
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); // 마우스 위치로 팝업을 띄운다.
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 을 주면 위처럼 인자로 준 x,y 좌표를 팝업메뉴의 중심에 위치하도록 팝업을 띄운다.
* 사용된 프로그램
+ GEOEditor
'컴퓨터 > MFC_API' 카테고리의 다른 글
프로그램이 플로피 디스크를 읽는 것 방지 (0) | 2009.12.27 |
---|---|
Scrollbar message handler 처리하기 (0) | 2009.12.27 |
저장하기 대화 상자 열기 (0) | 2009.12.14 |
클립보드(clipboard) 내용 가져오기 (0) | 2009.12.09 |
CListCtrl의 Report 형식에서, 선택된 모든 항목 삭제하기 (0) | 2009.12.09 |