c++ - 确定 HWND 是否代表顶级窗口的最佳方法是什么?

标签 c++ c windows winapi

是否检查 WS_CHILD 位:

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

或者有更好的方法吗?

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

最佳答案

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

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

关于c++ - 确定 HWND 是否代表顶级窗口的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973995/

相关文章:

.net - 在 Windows Vista/7 中重定向应用程序的图形输出(使用 DWM)

windows - 如何捕获 RichEdit 上的 OnScroll 事件?

c++ - 如何为给定的int找到最近的偶数? (给定 11 返回 12)

c++ - 尝试使用 Visual Studio 2008 堆调试器调试内存泄漏

c++ - 仅为应用程序禁用页面文件?

c - 将sizeof()的结果分配给ssize_t

c - 按值返回与按引用返回时有哪些注意事项 - Set ADT C

c - 在两个增量和间接运算符的情况下,C 如何处理运算优先级?

c++ - UB 在未评估的上下文中(例如需要表达式)仍然是 UB 吗?

java - 监控 Windows Server、Java 中的 UDP 数据包丢失