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); //會自動變灰色
如果出現的結果和預期不同,檢查下資源視圖裏是否修改了默認設置,修改後的設置與代碼衝突