我把右键菜单的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;}
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;}
pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
=>
pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,pFrame );
Identifies the window that owns the pop-up menu. This window receives all WM_COMMAND messages from the menu.
NM_CLICKED 使这个么!