VS2019, MFC 菜单以及菜单相关编程---标记菜单/缺省菜单项
程序员文章站
2022-05-01 14:48:53
...
1. Menu消息在各个类中的响应顺序:
view类->DOC 类->Frame类->APP 类
2.要实现标记菜单可以在 CMainFrame OnCreate成员中进行。即在窗口创建完成之后,在OnCreate函数最后加入如下代码:
//GetMenu()->GetSubMenu(0)->CheckMenuItem(0, MF_BYPOSITION | MF_CHECKED);//设置菜单项check状态
// Get the main window's menu
CMenu* pMenu = GetMenu();
// If there is a menu and it has items, we'll
// delete the first one.
if (pMenu != NULL && pMenu->GetMenuItemCount() > 0)
{
pMenu = pMenu->GetSubMenu(0);
//pMenu->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);
//pMenu->CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND | MF_CHECKED);//通过菜单项ID 设置菜单项check状态
//pMenu->DeleteMenu(0, MF_BYPOSITION);
//pMenu->SetDefaultItem(1, TRUE);//设置默认菜单项,菜单项将以粗体显示
pMenu->SetDefaultItem(ID_FILE_OPEN, FALSE);//通过ID号设置缺省菜单
}
3. 分隔栏也要算一个菜单项,对于缺省菜单项,一个子菜单中只能有一个。