我的非模态对话框里面有两个RichEdit控件,我加了一个右键菜单,但是当我点击菜单项时,不响应消息,也就是不进去函数(On***)里面,不知道是为什么?其他地方没有处理这个消息。
我觉得跟非模态对话框本身应该没什么问题,但是我又不知道为何不处理消息。

解决方案 »

  1.   

    你在TrackPopupMenu时指定的处理命令的窗口是什么?
      

  2.   

    你在TrackPopupMenu时指定的处理命令的窗口是什么?
      

  3.   

    BOOL CMyDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
    {
    MSGFILTER * lpMsgFilter = (MSGFILTER *)lParam;  if ((wParam == IDC_RICH_IN) && (lpMsgFilter->nmhdr.code == EN_MSGFILTER)   
    && (lpMsgFilter->msg == WM_RBUTTONDOWN))                                       
      
    {
    CPoint point;                                         
       ::GetCursorPos(&point); 
      CMenu menu; 
      UINT dwSelectionMade;                                       
    VERIFY(menu.LoadMenu(IDR_MENU_RICH) );  
       CMenu *pmenuPopup = menu.GetSubMenu(0);
       ASSERT(pmenuPopup != NULL);                                       
       dwSelectionMade = pmenuPopup->TrackPopupMenu( (TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_NONOTIFY|TPM_RETURNCMD),point.x, point.y, this
             );                                
      pmenuPopup->DestroyMenu(); 
    pResult=0;
    // PostMessage(dwSelectionMade,0,0);
      }
    return CDialog::OnNotify(wParam, lParam, pResult);
    }
      

  4.   

    TPM_NONOTIFY
    If this flag is set, the function does not send notification messages when the user clicks on a menu item.
    你用这个干什么?