12

是否检查 WS_CHILD 位:

    LONG style = GetWindowLong(hwnd, GWL_STYLE);
    int isTopLevel = !(style & WS_CHILD);

或者,还有更好的方法?

假设:直接 C 调用仅现有的 Windows API 代码。

4

3 回答 3

14
  • 方式#1:测试hWnd==GetAncestor(hWnd,GA_ROOT)

  • 方式#2:使用IsTopLevelWindow(user32 Win7,未记录)

于 2013-06-07T01:45:47.177 回答
1

GetParent() API返回当前窗口的父级或所有者。

于 2013-06-06T23:45:06.113 回答
0

您的方法是可能的(但我认为您最好检查它是否也是重叠/弹出窗口)。可能还有另一种方法——即枚举所有顶级窗口并检查您的窗口是否包含在结果中。

于 2013-06-07T00:31:35.383 回答