트리컨트롤에서 노드를 선택하고 마우스 우측클릭했을때 팝업메뉴가 뜨게 해보자!!!
1.첫번쨰
우선 트리컨트롤에서 이벤트핸들러를 추가한다...(Add Event Handler)
여기서 NM_RCLICK을 선택한다...(그림이 작아서 죄송합니다)
2번쨰
추가하면 다음코드를 추가한다. ()
void Cdemo2View::OnNMRclickTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
CPoint p;
GetCursorPos(&p);
UINT flags;
//마우스 위치의 좌푤을 트리의 클라이언트 영역 좌표로 전환
m_Tree.ScreenToClient(&p);
//HitTest함수를 이용하여 아이템을 얻고
HTREEITEM nitem=m_Tree.HitTest(p,&flags);
//아이템의 문자열(ID)를 얻는다. [m_SellD 를 미리 CString형으로 해더파일 선언해라.]
m_SelID=m_Tree.GetItemText(nitem);
if(m_SelID.GetLength()>0) // 팝업메뉴호출
{
CPoint p;
GetCursorPos(&p);
CMenu menu;
menu.LoadMenu(IDR_TREESELECT_MENU);
CMenu* Dmenu = menu.GetSubMenu(0); //맨 앞에 메뉴를 가져옴
Dmenu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON , p.x, p.y, this);
}
*pResult = 0;
}
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
MFC SDI 프로그램 최대화 시작 (0) | 2011.11.02 |
---|---|
모달리스 대화상자 작업표시줄에 표시하기 (0) | 2011.10.31 |
창의 최소화/최대화 크기 제한 (0) | 2011.10.31 |
타이틀바에 제목없음 제거하기 (0) | 2011.10.31 |
타이틀바없이 다이얼로그 이동 (0) | 2011.10.31 |
댓글