获取子菜单呀。应该是ASSERT(pPopup == NULL);吧

解决方案 »

  1.   

    menu.GetSubMenu(0);取得menu中的第一个子菜单,查查你的菜单资源,是否有子菜单和菜单是否已正确载入
      

  2.   

    比如说你的菜单有:文件  编辑   察看   .....
    GetSubMenu(0) 就是取得 文件 菜单。
    GetSubMenu(1) 就是取得 编辑 菜单。
      

  3.   

    liugy(最佳搭档): (应该是ASSERT(pPopup == NULL);吧
    ????????   !!!!!!!!!!
    不要听他的,你原来的代码是对的。
      

  4.   

    我的菜单资源里有子菜单啊。有两个。
    另外为什么用第一个子菜单的指针调用TrackPopupMenu函数
    pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
        curPoint.x, curPoint.y,
        pTree); 
    为什么不用母菜单menu调用TrackPopupMenu函数呢??
      

  5.   

    应该是:
    CMenu * pMenu;
    pMenu->CreatePopupMenu(...);
    pMenu = menu.....
      

  6.   

    这样吧:
    1.使用菜单编辑器在工程中插入一个新的空菜单(ID为:IDR_SETTING_MENU)
    2.在左面的顶层菜单键入一些字符,然后,在随后的弹出式菜单中添加菜单项
    3.使用ClassWizard在视视图类中或在某个接收鼠标消息的其它窗口类中添加WM_CONTEXTMENU消息。为处理程序编码,如下所示:
    void CEx13aView::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
    // TODO: Add your message handler code here
    CMenu menu;
    menu.LoadMenu(IDR_SETTING_MENU);
    menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,this);
    }一定可以,我现在就用这个。
      

  7.   

    ASSERT(pPopup == NULL);不应该ASSERT(pPopup != NULL);
      

  8.   

    ft
    ASSERT(pPopup != NULL);是绝对正确的。我的问题在于Menu资源没有整好顶层菜单没有设置成弹出式。
    代码是没有问题的。给分