c++ - 如何检测 HWND 是否属于我的应用程序?

标签 c++ winapi

我的应用程序创建了多个窗口,我想在这些窗口之间强制执行 Z 顺序,即,如果两个窗口碰巧重叠,则应将优先级较高的窗口绘制在优先级较低的窗口之上。

我正在使用 GetWindow 获取不同(不可见/可见)窗口的句柄到一个窗口功能。我想知道此函数返回的特定窗口是否由我的应用程序创建。关于如何获取该信息的任何想法?

最佳答案

您可以使用 [MS.Docs]: GetWindowThreadProcessId function .

为了检查当前进程ID,使用[MS.Docs]: GetCurrentProcessId function .

如果您的应用程序更复杂并且生成多个创建窗口的进程,则您必须使用 [MS.Docs]: Tool Help Functions 构建进程树((CreateToolhelp32SnapshotProcess32FirstProcess32Next)+ CloseHandle)。

关于c++ - 如何检测 HWND 是否属于我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054617/

相关文章:

c++ - 如何克服 OpenCV 和 RTMaps 中 struct C++ 的双重声明?

C++ 避免重新定义需要返回多态类型的代码

c++ - 使用动态规划从背包中检索项目

winapi - GDI快速滚动

c# - 我不想将 Thread.Sleep 与 SHDocVw.ShellWindows 一起使用

c++ - 在使用模板类制作自定义 vector 时,我应该如何处理析构函数?

c++ - 在 Win32 上 Hook 虚拟方法(返回大于 ptr 的对象崩溃)?

c++ - 当鼠标悬停在某个控件上时,如何设置自定义光标?

c++ - 动态内存分配 : What is the alternative for a two dimensional array when the rightmost dimension is variable?

c++ - 将 for 循环与嵌套 while 循环并行化时出现 OpenMP 段错误