VC++中右键弹出菜单不反应怎么回事?具体程序如下:
voidCSketcherView::OnContextMenu(CWnd*pWnd,CPointpoint){CMenumenu;menu.LoadMenuW(IDR_...
void CSketcherView::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu;
menu.LoadMenuW(IDR_CURSOR_MENU);
CMenu* pPopup=menu.GetSubMenu(0);
ASSERT(pPopup!=NULL);
pPopup->TrackPopupMenu(TPM_CENTERALIGN | TPM_RIGHTBUTTON, point.x, point.y ,this); 展开
{
CMenu menu;
menu.LoadMenuW(IDR_CURSOR_MENU);
CMenu* pPopup=menu.GetSubMenu(0);
ASSERT(pPopup!=NULL);
pPopup->TrackPopupMenu(TPM_CENTERALIGN | TPM_RIGHTBUTTON, point.x, point.y ,this); 展开
2个回答
展开全部
首先:menu.LoadMenuW(IDR_CURSOR_MENU);
应该写成
menu.LoadMenu(IDR_CURSOR_MENU);
然后检查你的menu:IDR_CURSOR_MENU,第一个菜单是不是Pop-up类型的
如果上边两个没问题,经过我测试,你的程序能正常右键显示菜单
应该写成
menu.LoadMenu(IDR_CURSOR_MENU);
然后检查你的menu:IDR_CURSOR_MENU,第一个菜单是不是Pop-up类型的
如果上边两个没问题,经过我测试,你的程序能正常右键显示菜单
更多追问追答
追问
1、关于这个menu.LoadMenu(IDR_CURSOR_MENU);我在写的时候只有带W的哪个方法,不写W也不出错,所以也没管他,为什么自动出来的那些没LoadMenu这个呢?
2、怎样看菜单的类型?第一菜单只的是哪个?
非常感谢!
追答
1.我在vc6.0下调试的,所以只有不带w的,用LoadMenu试试吧;
2.在资源视图中Menu文件夹下,找IDR_CURSOR_MENU,看看这个菜单,看菜单第一项的属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个是在什么事件响应函数里的啊?
OnContextMenu是什么事件响应的?
要在右键单击事件里啊
OnRButtonDUp
OnContextMenu是什么事件响应的?
要在右键单击事件里啊
OnRButtonDUp
更多追问追答
追问
void CSketcherView::OnRButtonUp(UINT nFlags, CPoint point)
{
ClientToScreen(&point);
OnContextMenu(this, point);
}
追答
把point换掉吧,这个point是相对于被点击的CWnd的客户区的坐标。
你要用屏幕的坐标。另外整个点:
CPoint pt;
::GetCursorPos(&pt);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询