右键菜单和弹出菜单的区别

接触windows开发10年了,一直以为"右键菜单"和"弹出菜单"是不同的。

最近刚刚发现,这两种菜单在定义的时候和消息循环处理程序中并没有什么不同,区别只是在于windows底层显示方式。

如下是右键菜单的显示方式:

cpp 复制代码
int DialogFiles::rmenu() {

	HMENU menu = LoadMenuA(0, (LPCSTR)IDR_MENU2);

	HMENU sub = GetSubMenu(menu, 0);
	RECT rect = { 0 };

	POINT pt;
	GetCursorPos(&pt);
	TrackPopupMenu(sub, TPM_LEFTBUTTON | TPM_TOPALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, m_hwnd, 0);

	return 0;
}

以下是菜单栏的显示方式:

cpp 复制代码
SetMenu(LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MAINWINDOW)));

同时,菜单定义的资源文件如下:

从上图可以看出,两种菜单的定义方式相同,而显示方式的区别在于POPUP字段的处理不同。右键菜单不显示POPUP项,而菜单栏显示POPUP这一项。

相关推荐
PythonFun28 分钟前
职场小白如何一键安装Windows系统
windows
一目Leizi1 小时前
Windows 系统下安装 Ubuntu 双系统详细教程(图文指南)
linux·windows·ubuntu
new_zhou2 小时前
Windows环境c++开发dump文件生成(优化方案)
c++·windows·qt
super_lzb2 小时前
【技术实战系列】windows系统如何模拟tail命令效果
windows·tail命令·日志查看·windows tail·windowstail命令
fengsen52113143 小时前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
Full Stack Developme3 小时前
spring #{} 与 ${} 区别
windows·python·spring
魑-魅-魍-魉4 小时前
金仓数据库(KingbaseES)V8R3 Windows 版大小写敏感设置详解
数据库·windows·金仓
瀚高PG实验室5 小时前
hghac8008漏洞扫描处理
linux·网络·windows·瀚高数据库
xiaoliuliu123455 小时前
phpwind_UTF8_8.5部署步骤详解(含环境准备+安装教程)
windows
IT古董5 小时前
Next.js 本地 HTTPS + 自定义域名无法访问问题排查(Windows / mkcert / HSTS 完整指南)
windows·https·next.js