gpt4 book ai didi

visual-c++ - 删除 MFC 中的菜单

转载 作者:行者123 更新时间:2023-12-04 11:55:59 28 4
gpt4 key购买 nike

在 MFC 中如何删除 POPUP 类型的菜单项。 RemoveMenu() 要么取 ID 要么取位置。因为 POPUP 菜单没有 ID,所以左边的选项是使用位置。

但我不知道如何以及在何处调用 RemoveMenu()。

文件编辑测试
Test_submenu_1
Test_submenu_2
test_submenu_3 > submenu_3_item_1
Test_submenu_4
Test_submenu_5

我想删除 Test_submenu_3 吗?我不知道如何为 Test 找到 CMenu 对象,以便我可以通过为 submenu_3_item_1 传递位置“2”来调用 RemoveMenu()。

任何这样做的建议将不胜感激。

谢谢!

最佳答案

你不能使用 LoadMenu,因为这个函数就是这样做的。

修改加载的菜单后,当用于加载它的菜单对象超出范围时,它会被杀死。您必须修改当前使用的菜单。

您的菜单是主菜单的弹出部分,位居第二。它包含 5 个项目,第二个是另一个弹出窗口。据我了解,您想删除此项目并弹出此项目。
要使其工作,您必须向主窗口询问当前菜单:

CMenu* pMenu = GetMenu(); // get the main menu
CMenu* pPopupMenu = pMenu->GetSubMenu(2);//(Test menu with item....)
pPopupMenu->RemoveMenu(2, MF_BYPOSITION);

当然,这段代码来自主框架。如果您想在其他地方使用它,则必须使用指向主框架的指针访问所有内容。

关于visual-c++ - 删除 MFC 中的菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12601270/

28 4 0