太抽象了,别让我在EDIT中加入右击鼠标弹出菜单功能

解决方案 »

  1.   

    BOOL CSpeechDlg::PreTranslateMessage(MSG* pMsg) 
    {
          if(pMsg->message == WM_RBUTTONDOWN)
          {
             CPoint pt;
             GetCursorPos(&pt);
    CRect rc;
    GetDlgItem(IDC_EDIT)->GetWindowRect(&rc);//这里是给一个edit替换菜单。
    if(rc.PtInRect(pt))
    {
         ScreenToClient(&pt);
                  //在pt点弹出菜单
                  //自己处理吧。
    }
          }
          return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    楼上的能够实现,另可以自己做一个CEdit类的超类或子类。
      

  3.   

    先通过project-->add to project...往工程中加入pop up menu,再在你的工程中对右击鼠标的事件修改,如只对在特定的control的rect中才弹出该menu就行了.
      

  4.   

    可是point是基于屏幕的,而rect是基于View的,不能比较的,不知道怎样获得View的左上点的pos?