【问题标题】: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 无论如何都无法考虑到这一点。 标签: c++ c windows winapi 【解决方案1】: 如果窗口已经创建,你可以调用GetMenu,传递窗口的句柄。如文档中所述: 如果指定窗口没有菜单,则返回值为NULL。 另一方面,如果你想知道一个尚未创建的窗口是否默认有菜单1),你可以通过调用@查询类信息987654322@,并比较返回的WNDCLASS' lpszMenuName 成员。同样,正如文档所解释的: 如果此成员为 NULL,则属于此类的窗口没有默认菜单。 1)请注意,窗口仍然可以在运行时通过调用 SetMenu 添加或删除菜单。 【讨论】: