c# - Win32 api - 如何检查指定句柄是否为窗口? (并且不是窗口内的控件)

标签 c# winapi window controls handle

我的目标是获取我单击的窗口的句柄。我正在使用全局鼠标 Hook ,然后使用 GetCursorPosWindowFromPoint)。当我点击一个按钮(或其他控件)时,我得到了按钮的句柄。使用 GetParent 我可以找到父窗口,所以我需要检查我拥有的句柄是否是一个窗口。

我试过 GetClassName 但这不是我想要的。

任何想法表示赞赏(也使用其他方法)。

最佳答案

if (GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD) {
    // window is a child window
} else {
    // window is a top-level window
}

关于c# - Win32 api - 如何检查指定句柄是否为窗口? (并且不是窗口内的控件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22276691/

相关文章:

c# - 如何判断线程是否成功退出?

windows - 为什么我的自定义消息在应用程序启动时被发送?

c++ - 如何使用 C++ 和 Windows API 将击键/消息发送到 Windows 7?

window - 如何在窗口外单击鼠标关闭 Vaadin 子窗口?

c#无边框捕获窗口内容

c# - 使用 C# 创建图表

c# - 检测组合键事件

c# 社交网络库 API 包装器

.net - 应用程序重新启动 API 不会重新启动失败的应用程序

git - 在没有行结束文件更改的情况下在 mac 和 windows vm 之间共享 git repo