VC鼠标右键弹出菜单的实现

来源:互联网 发布:it网络学院 编辑:程序博客网 时间:2024/06/11 02:11

1添加Menu资源,在里面设好内容

2添加鼠标右键点击消息

具体实现:

void DIALOG1::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
 // TODO: Add your control notification handler code here
 LPPOINT lpoint=new tagPOINT;   
   ::GetCursorPos(lpoint);                                //获得鼠标
   CMenu   menu,*pSubMenu;
   menu.LoadMenu(IDR_MENU2);                //添加菜单资源
   pSubMenu=menu.GetSubMenu(0);           //设置菜单弹出项目起始位置
   pSubMenu->TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this);    //获得鼠标位置
 *pResult = 0;

 

void   CMyView::OnRButtonDown(UINT   nFlags,   CPoint   point)    
  {  
  CPoint   pt;  
  CMenu   menu;  
  CTreeCtrl&   cThisTree   =   GetTreeCtrl();  
   
  HTREEITEM   SelItem   =   cThisTree.HitTest(   point,     &nFlags   );  
   
  if   (SelItem   ==   NULL)     return   ;//未选中树形控件,则返回  
   
  cThisTree.SelectItem(SelItem)   ;//取得当前所选节点  
   
  menu.CreatePopupMenu();  
  menu.AppendMenu(0,ID_USER1,"菜单一");  
  menu.AppendMenu(0,ID_USER2,"菜单二");  
  GetCursorPos(&pt);  
  menu.TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);  
  ptAction=pt;  
   
  }  

原创粉丝点击