判断一个窗口是不是有菜单栏
Posted
技术标签:
【中文标题】判断一个窗口是不是有菜单栏【英文标题】:Find out whether a window has a menu bar判断一个窗口是否有菜单栏 【发布时间】:2016-06-09 14:41:48 【问题描述】:我想知道是否可以获得信息,Windows 窗口中是否有菜单。
此信息将用作AdjustWindowRect
的第三个参数。如果可能的话,我不想自己保存这些信息。
【问题讨论】:
我建议使用关键字“MSDN C++检测菜单”搜索互联网 如果GetMenu
返回NULL
则没有标准菜单。
啊哈..我在搜索 MSDN ...但从未找到菜单参考..谢谢大家!
@fodinabor 你可能还想记住this; AdjustWindowRect()
不处理包含多行的菜单。
窗口也可以使用非标准菜单的自定义菜单栏,因此这些 API 无论如何都无法考虑到这一点。
【参考方案1】:
如果窗口已经创建,你可以调用GetMenu,传递窗口的句柄。如文档中所述:
如果指定窗口没有菜单,则返回值为NULL。
另一方面,如果你想知道一个尚未创建的窗口是否默认有菜单1),你可以通过调用@查询类信息987654322@,并比较返回的WNDCLASS' lpszMenuName 成员。同样,正如文档所解释的:
如果此成员为 NULL,则属于此类的窗口没有默认菜单。
1)请注意,窗口仍然可以在运行时通过调用 SetMenu 添加或删除菜单。
【讨论】:
以上是关于判断一个窗口是不是有菜单栏的主要内容,如果未能解决你的问题,请参考以下文章