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

fod*_*bor 4 c c++ windows winapi

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

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

IIn*_*ble 6

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

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

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

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


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