About popMenu. Thank you!

LusterPhil 2005-01-09 04:03:06
各位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);
}

...全文
64 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HunterForPig 2005-01-09
  • 打赏
  • 举报
回复
重建个工程,把文件add 进去
看看还会否?
zhaogaojian 2005-01-09
  • 打赏
  • 举报
回复
不在xp里运行有问题吗?
Kudeet 2005-01-09
  • 打赏
  • 举报
回复
用断点调试,在可能出错的地方按下F9,然后按F5运行程序,到你设置断点的地方程序会停止运行,然后你按F10继续运行,应该可以找到问题的所在。(F10的一句一句的运行代码,F11是跟踪进入到函数里面,能更详细的看运行情况)

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧