惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
B
Blog
博客园 - Franky
H
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
云风的 BLOG
云风的 BLOG
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
V
V2EX
Martin Fowler
Martin Fowler
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队

博客园 - double64

Qt 翻译简单使用 MSVC 特有的 pragma C# 字符串转换 C# 遍历删除空文件夹 MFC 单文档无边框最大化全屏 MFC 对话框去边框最大化全屏 C++ 动态数组 C++ 安全的拷贝赋值(Copy-and-Swap 惯用法) C++ 基类派生类的 static_cast 和 dynamic_cast 转换的简单测试 visual studio 的 snippet 代码片段模板样式 Windows 右键管理官方小程序Autoruns C++ 结合 enum 按位与或组合检测枚举项 std::unique_ptr 当删除器类型为 无状态的时构造可以不用传删除器示例 两个用来写 CLI - Command-Line Interface 的命令解析库 enum class 类型转换 int 微软输入法中如何输出当前时间 音程知识 C++ 模板引用参数的各种情况 英语 12 种时态 Qt 手动添加 Q_OBJECT 需要添加的地方 C# WPF 绑定 ObservableObject 实现 INotifyPropertyChanged 接口 C++ 标准库 copy_if C++ lambda 和 bind 何时优先使用 Windows 下的 Qt 中 min max 函数冲突 C++ RVO 或 NRVO 可能触发的条件 C++ std::unique_ptr 和 std::shared_ptr 都支持自定义删除器(deleter) C++ 智能指针和动态数组 std::vector 插入另一个 vector 的范围元素 Qt tableWidget QTableWidget 常用一些属性设置 C++ 内部类(嵌套类)是可以访问外部类的私有保护成员的
MFC 单文档去掉菜单栏
double64 · 2026-07-16 · via 博客园 - double64

一. 去掉菜单栏

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);
  		}
  	}

效果:
image

下面这样好像是同样的效果,更简洁:

	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	// 1. 移除菜单栏(文件、编辑等)
	SetMenu(NULL);

	// 2. 保留系统菜单,但不显示
	// 不修改系统菜单,保留功能

	// 3. 移除左上角图标(可选)
	SetIcon(NULL, FALSE);
	SetIcon(NULL, TRUE);