About popMenu. Thank you!
各位ggjj,小弟求教!
XP下总是报错:
“遇到问题需要关闭。我们对此引起的不便表示抱歉。”
其他并未改动,难道我的VC++6.0缺文件了?
还是要加*.h文件?
第一种做法
void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu popMenu;
m_ptMsg = point ;
ScreenToClient(&m_ptMsg);
popMenu.LoadMenu(IDR_POPMENU);
CMenu *pPopup = popMenu.GetSubMenu(0);
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,
point.x ,point.y ,this);
}
第二种做法
void CRButtonView::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu; //定义CMenu类对象
menu.LoadMenu(IDR_POPMENU); //装入刚建立的菜单IDC_POPMENU menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,pWnd);
/*GetSubMenu(0)得到IDC_POPMENU的第一层子菜单,
TrackPopupMenu将菜单弹出到(x,y)处。
由于设置为TPM_LEFTALIGN,所以菜单以(x,y)为左上角。*/
}
void CRButtonView::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu; //定义CMenu类对象
menu.LoadMenu(IDR_POPMENU); //装入刚建立的菜单IDC_POPMENU
ClientToScreen(&point);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
/*GetSubMenu(0)得到IDC_POPMENU的第一层子菜单,
TrackPopupMenu将菜单弹出到(x,y)处。
由于设置为TPM_LEFTALIGN,所以菜单以(x,y)为左上角。*/
ScreenToClient(&point);
CView::OnLButtonDown(nFlags, point);
}