需求:当我们在桌面空白处右键鼠标时,会弹出一个菜单,里面有"新建"项目;目的:如何才能在我自己的对话框程序上,当我点击按钮时 得到该菜单的整个句柄,进而操作;就是模拟鼠标右键;

解决方案 »

  1.   

    建立鼠标右键事件  然后
    BEGIN_MESSAGE_MAP(CAdminControlDlg, CDialog)
     ON_NOTIFY(NM_RCLICK, IDC_CONTROL_LIST, OnNMRclickUserList)
    END_MESSAGE_MAP()//右键菜单
    void OnNMRclickUserList(NMHDR * pNMHDR, LRESULT * pResult)
    {
     NMITEMACTIVATE * pListNotify=(NMITEMACTIVATE *)pNMHDR;
     if (pListNotify->iItem!=-1)
     {
      //取消选中
      //if (pListNotify->iItem==0) return;
      //获取位置
      CPoint MousePoint;
      GetCursorPos(&MousePoint);
      //构造菜单
      CMenu CtrlMenu;
      CtrlMenu.CreatePopupMenu();
      //功能菜单
      CtrlMenu.AppendMenu(MF_ENABLED,IDM_MENU_NULL,TEXT("添加一项"));
      CtrlMenu.AppendMenu(MF_SEPARATOR);
      //显示菜单  CtrlMenu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,MousePoint.x,MousePoint.y,this);
     }
     return;
    }