【发布时间】:2013-06-03 03:56:22
【问题描述】:
是否检查WS_CHILD位:
LONG style = GetWindowLong(hwnd, GWL_STYLE);
int isTopLevel = !(style & WS_CHILD);
或者有没有更好的方法?
假设:直接 C 调用仅现有的 Windows API 代码。
【问题讨论】:
-
检查
WS_CHILD样式的缺失是一种方法——任何不是子窗口的窗口都是顶级窗口。 -
@Jonathan - 但是,WS_CHILD(DesktopWindow 的子级)有顶级
-
在窗口层次结构中,所有窗口都是桌面的子窗口,但只有设置了
WS_CHILD的窗口才是真正的子窗口。 -
再一次,如果你不明白:有顶级的WS_CHILD。
-
反之,窗口可以不是 WS_CHILD 但不是顶级的