본문 바로가기
C & C++/MFC 컨트롤

트리 컨트롤에 팝업메뉴 추가하기

by izen8 2011. 10. 31.
반응형

트리컨트롤에서 노드를 선택하고 마우스 우측클릭했을때 팝업메뉴가 뜨게 해보자!!!

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;
}

반응형

댓글