c++ - 如何在 MFC 中向 CMenu 添加子菜单?

标签 c++ mfc menu submenu cmenu

我有一个使用 CMenu 作为主菜单栏的 MFC 应用程序。
我无法成功创建子菜单。

我可以拥有第一级文件、编辑、查看等及其子菜单,但我无法从其中一个菜单创建子菜单。

例如,我希望能够转到文件->最近的项目->子菜单中的项目列表
我可以使用 VS 中的资源编辑器轻松完成此操作,但这需要动态完成。

我在 CMenu 中使用了正确的类吗?对尝试什么有什么建议吗?
我还没有找到任何像样的教程。即使将我指向正确的方向也会有所帮助。

最佳答案

使用您的资源编辑器添加一个包含一个占位符项的子菜单。然后,您可以通过编程获取对此子菜单的引用,向其添加项目并删除占位符项目:

CMenu *subMenu = mainMenu.GetSubMenu( menuPosition );

if( subMenu )
{
    for( unsigned i = 0; i < stringArray.size(); i++ )
    {
        subMenu->AppendMenu( MF_STRING, 400 + i, stringArray[i]);
    }

    subMenu->DeleteMenu( ID_SUBMENU_PLACEHOLDER, MF_BYCOMMAND );
}

关于c++ - 如何在 MFC 中向 CMenu 添加子菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155989/

相关文章:

c++ - 如何填充矩形(c++、mfc)

java - 设置 JMenu,我试图在布局框的顶部创建一个不是组合框的菜单

html - Twitter bootstrap 2 顶部导航下拉菜单无法在移动设备上工作

php - 在模板中使用 symfony 的动态菜单

c++ - #define 错误

c++ - 如何在 Visual Studio 2013 中构建 OOLua

mfc - 对于带有 ActiveX 控件的对话框,CDialog::Create 失败

c++ - 将表示与接口(interface)解耦的含义(C++)

c++ - 包含 std::queue 的类的值初始化

c++ - CArray 不会在内存重新分配时调用复制构造函数,现在怎么办?