是否要检查WS_CHILD位:
LONG style = GetWindowLong(hwnd, GWL_STYLE);
int isTopLevel = !(style & WS_CHILD);
或者有更好的方法吗?
假设:直接C只调用现有的Windows API代码。
答案 0 :(得分:9)
方式#1:测试hWnd==GetAncestor(hWnd,GA_ROOT)
方式#2:使用IsTopLevelWindow
(user32 Win7,未记录)
答案 1 :(得分:1)
GetParent() API返回当前窗口的父级或所有者。
答案 2 :(得分:0)
您的方法是可行的(但我认为最好还是检查它是否是重叠/弹出窗口)。可能还有另一种方法 - 即枚举所有顶级窗口并检查您的窗口是否包含在结果中。