去掉if (point.x == -1 && point.y == -1)这句试试。

解决方案 »

  1.   

    if (Button == 2) 
    {
    CMenu menu;            // top-level menu 
    CMenu *pMenu=NULL;  // pop-up menu  menu.LoadMenu(IDR_RIGHTMENU);
    pMenu = menu.GetSubMenu(0);
    if (!pMenu)
    return TRUE;
    SetMenuDefaultItem(pMenu->m_hMenu, IDV_PREVIEWWIN, FALSE);
    POINT pt;
    GetCursorPos(&pt);
    pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this, NULL); 
    // Destroy the menu. 
    menu.DestroyMenu(); 
    }
      

  2.   

    这样做:
    void CMy14Dlg::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
    CMenu menu;            // top-level menu 
    CMenu *pMenu=NULL;  // pop-up menu 
    menu.LoadMenu(IDR_RIGHTMENU);
    pMenu = menu.GetSubMenu(0);
    POINT pt;
    GetCursorPos(&pt);
    pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this, NULL); 
    menu.DestroyMenu(); 

    }