我把右键菜单的id号设为与菜单栏中的菜单项的id号一样,那为什么我点右键菜单时却没有执行呢??我的右键菜单是点击CListCtrl中的任意项而触发的,是不是在右键菜单的代码中还要添加对CListCtrl中项的判断???望大家帮忙,谢谢!!!
void CGpsView::OnRclickListGps(NMHDR* pNMHDR, LRESULT* pResult) 
{   
HD_NOTIFY * CurrentSel = (HD_NOTIFY *) pNMHDR;
    iIndex = CurrentSel->iItem;
CPoint point;
GetCursorPos(&point);
CMenu*pPopMenu=new CMenu;
pPopMenu->LoadMenu(IDR_RIGHTBUTTON_MENU);
CMenu*pFileMenu=pPopMenu->GetSubMenu(0); CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd ();
    if( pFrame->m_bAuoMenuEnable)
    {
pFileMenu->EnableMenuItem(ID_FILE_DOWNLOAD, MF_GRAYED);
pFileMenu->EnableMenuItem(ID_FLASH_DELETE, MF_GRAYED);
pFileMenu->EnableMenuItem(ID_FILE_DOWNLOAD_ZHD, MF_GRAYED);
pFileMenu->EnableMenuItem(ID_FLASH_ERASE, MF_GRAYED);
pFileMenu->EnableMenuItem(ID_FLASH_RECOVER, MF_GRAYED);
pFileMenu->EnableMenuItem(ID_FLASH_REFRESH, MF_GRAYED);
    }
    pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
delete pPopMenu;}

解决方案 »

  1.   

    可以试试把代码移到 CListCtrl::OnContextMenu 里
      

  2.   

    你在菜单响应函数是写在CMainFrame类上的?那么
    pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
    =>
    pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,pFrame );
      

  3.   

    pWnd 
    Identifies the window that owns the pop-up menu. This window receives all WM_COMMAND messages from the menu.
      

  4.   

    你选择的触发消息事件好像不对吧 
    NM_CLICKED 使这个么!