1. 新建文档,选择单个文档,MFC standard (其他的设置好像不行)
2. 在 CMainFrame.cpp的OnCreate方法最后加入
CMenu *menu = GetMenu();
//获取子菜单
CMenu *fileMenu = menu->GetSubMenu(0);
//勾选
fileMenu->CheckMenuItem(2, MF_BYPOSITION | MF_CHECKED); //第一个参数由MF_BYPOSITION决定
fileMenu->CheckMenuItem(ID_FILE_OPEN, MF_BYCOMMAND | MF_CHECKED);//第一个参数由MF_BYCOMMAND决定
//默认项(会加粗)一个菜单项只有一个默认菜单
//第二个参数FASLE表示为ID , TRUE表示用位置
fileMenu->SetDefaultItem(ID_FILE_PRINT, FALSE);
//fileMenu->SetDefaultItem(2, TRUE);
如果要让菜单不可用,先在构造函数取消自动enable
CMainFrame::CMainFrame() noexcept
{
// TODO: 在此添加成员初始化代码
m_bAutoMenuEnable = FALSE;
}
让后再刚刚OnCreate的后面加入
fileMenu->EnableMenuItem(1, MF_BYPOSITION | MF_DISABLED); //会自动变灰色
如果出现的结果和预期不同,检查下资源视图里是否修改了默认设置,修改后的设置与代码冲突