VS 2017 MFC 使用代码 GetMenu() 修改菜单样式

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); //会自动变灰色

 

如果出现的结果和预期不同,检查下资源视图里是否修改了默认设置,修改后的设置与代码冲突

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章