找出一个窗口是否有菜单栏

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

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

如果窗口已经创建,你可以调用GetMenu ,传递窗口的句柄。 正如文件中所解释的那样:

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

另一方面,如果您需要知道,尚未创建的窗口是否默认有菜单1) ,则可以通过调用GetClassInfo来查询类信息,并比较返回的WNDCLASS的lpszMenuName成员。 再次,正如文件解释:

如果这个成员是NULL,属于这个类的窗口没有默认菜单。


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