先循环DeleteMenu()将所有菜单项删除,再AppendMenuW()加入了一个新菜单项,之后想往这个菜单项里添加子项,可是用AfxGetMainWnd()->GetMenu()->GetSubMenu(0)->AppendMenuW()总是报错,请问是哪里出错了呢?

解决方案 »

  1.   

    本帖最后由 happyparrot 于 2011-07-25 12:33:20 编辑
      

  2.   

    谢谢你!之前用PopUp的也报错:
    ...->GetSubMenu(0)->AppendMenuW(MF_POPUP, (UINT_PTR)subMenu->operator HMENU(), (CString)"SubMenu");
      

  3.   

    CMenu* mainMenu = AfxGetMainWnd()->GetMenu();//这里已经完成了删除和添加新菜单项的操作。
    CMenu* tempMenu = mainMenu->GetSubMenu(0);调试发现tempMenu = 0x00000000,应该是没赋值,这是怎么回事,用mainMenu->GetMenuItemCount()返回值是1,说明新的菜单项应该添加成功了。
      

  4.   

    查了下GetSubMenu()只能获取下拉式菜单或子菜单的句柄,我Append的应该是一个原子菜单项而不是菜单,所以Get不到,后来把添加的主菜单项改为PopUp式就可以继续添加子项了,谢谢happyparrot~刚刚明白你的意思!