我有一个使用 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/