【问题标题】:Find out whether a window has a menu bar判断一个窗口是否有菜单栏
【发布时间】:2016-06-09 14:41:48
【问题描述】:

我想知道是否可以获得信息,Windows 窗口中是否有菜单。

此信息将用作AdjustWindowRect 的第三个参数。如果可能的话,我不想自己保存这些信息。

【问题讨论】:

  • 我建议使用关键字“MSDN C++检测菜单”搜索互联网
  • 如果GetMenu 返回NULL 则没有标准菜单。
  • 啊哈..我在搜索 MSDN ...但从未找到菜单参考..谢谢大家!
  • @fodinabor 你可能还想记住thisAdjustWindowRect() 不处理包含多行的菜单。
  • 窗口也可以使用非标准菜单的自定义菜单栏,因此这些 API 无论如何都无法考虑到这一点。

标签: c++ c windows winapi


【解决方案1】:

如果窗口已经创建,你可以调用GetMenu,传递窗口的句柄。如文档中所述:

如果指定窗口没有菜单,则返回值为NULL。

另一方面,如果你想知道一个尚未创建的窗口是否默认有菜单1),你可以通过调用@查询类信息987654322@,并比较返回的WNDCLASS' lpszMenuName 成员。同样,正如文档所解释的:

如果此成员为 NULL,则属于此类的窗口没有默认菜单。


1)请注意,窗口仍然可以在运行时通过调用 SetMenu 添加或删除菜单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2010-09-27
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多