팝업 메뉴 띄우기
페이지 정보
본문
뷰 윈도우에서 오른쪽 마우스 버튼을 누르면 팝업 메뉴를 띄우고 싶습니다. CMenu 클래스를 이용했는데 잘 안 됩니다.
다음 코드는 오른쪽 마우스 버튼이 클릭되었을 때 그 위치에다 팝업 메뉴를 띄우는 코드입니다.
void Cxxx::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu;
// 마우스의 좌표가 현재 리스트 컨트롤에서 어느 위치에 있는지 살펴본다.
::ClientToScreen(m_hWnd, &point);
// 메뉴를 띄운다.
menu.LoadMenu(IDR_CHATMENU);
CMenu *pRMenu = menu.GetSubMenu(0);
// TrackPopupMenu의 네 번째 인자로 명령을 받을 윈도우의 포인터를 지정한다
pRMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, GetParent());
}
여기서 중요한 것은 IDR_CHATMENU가 가리키는 메뉴 리소스가 다음과 같은 그림과 같이 탑 메뉴 항목이 첫 번째 탑 메뉴 항목의 서브 메뉴로 구성해 놓아야 한다는 점입니다.
다음 코드는 오른쪽 마우스 버튼이 클릭되었을 때 그 위치에다 팝업 메뉴를 띄우는 코드입니다.
void Cxxx::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu;
// 마우스의 좌표가 현재 리스트 컨트롤에서 어느 위치에 있는지 살펴본다.
::ClientToScreen(m_hWnd, &point);
// 메뉴를 띄운다.
menu.LoadMenu(IDR_CHATMENU);
CMenu *pRMenu = menu.GetSubMenu(0);
// TrackPopupMenu의 네 번째 인자로 명령을 받을 윈도우의 포인터를 지정한다
pRMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, GetParent());
}
여기서 중요한 것은 IDR_CHATMENU가 가리키는 메뉴 리소스가 다음과 같은 그림과 같이 탑 메뉴 항목이 첫 번째 탑 메뉴 항목의 서브 메뉴로 구성해 놓아야 한다는 점입니다.
댓글목록
등록된 댓글이 없습니다.