qq_遁去的一_1
这里不需要用Detach()你这个主要产生的错误为:GetMenu()->GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);你这个是在视图里面用GetMenu(),因为视图里面是没有菜单的.菜单是属于框架对象的.所以可以改为:GetParent()->GetMenu()->GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);这样就会弹出<新建--打开--保存--打印>等菜单选项.我估计这个不是你的原意:你的原意应该是要弹出你加载的新菜单项,所以应该这样: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);很明显你这里不需要!