大家好,我是小跳,我来为大家解答以上问题。detachment翻译,detach很多人还不知道,现在让我们一起来看看吧!
1、这里不需要用Detach()
2、你这个主要产生的错误为:
3、GetMenu()->GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);
4、你这个是在视图里面用GetMenu(),因为视图里面是没有菜单的.菜单是属于
5、框架对象的.
6、所以可以改为:
7、GetParent()->GetMenu()->GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);
8、这样就会弹出等菜单选项. 我估计这个不是你的原意: 你的原意应该是要弹出你加载的新菜单项,所以应该这样: CMenu menu; menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this); 这样就能弹出你加载的那个菜单项了. 至于Detach();意思是从这个菜单对象中把里面的菜单剥脱出去. 所以我们可以这样用: CMenu menu; menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this); menu.Detach(); menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(1)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this); 很明显你这里不需要!
本文到此讲解完毕了,希望对大家有帮助。