MFC 单文档去掉菜单栏
一. 去掉菜单栏
在 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 函数中添加:
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// 1. 保留 WS_SYSMENU,不清除它
// 不修改窗口样式
// 2. 移除菜单栏(文件、编辑等)
SetMenu(NULL);
// 3. 禁用系统菜单的弹出(点击图标或右键标题栏不弹出菜单)
// 方法:移除系统菜单中的所有项
HMENU hSysMenu = ::GetSystemMenu(NULL, FALSE);
if (hSysMenu) {
int nCount = GetMenuItemCount(hSysMenu);
for (int i = nCount - 1; i >= 0; --i) {
RemoveMenu(hSysMenu, i, MF_BYPOSITION);
}
}
效果:

下面这样好像是同样的效果,更简洁:
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// 1. 移除菜单栏(文件、编辑等)
SetMenu(NULL);
// 2. 保留系统菜单,但不显示
// 不修改系统菜单,保留功能
// 3. 移除左上角图标(可选)
SetIcon(NULL, FALSE);
SetIcon(NULL, TRUE);
浙公网安备 33010602011771号