遍历窗口句柄获取窗口大小
时间: 2023-10-18 08:18:23 浏览: 91
易语言遍历方法枚举窗口句柄
可以使用Windows API中的`EnumWindows`和`GetWindowRect`函数来遍历窗口句柄并获取窗口大小。
首先,定义一个回调函数作为参数传递给`EnumWindows`函数。这个回调函数会被枚举到的每一个窗口都调用一次。在这个函数中,我们可以使用`GetWindowRect`函数获取窗口的位置和大小信息。
下面是一个示例代码:
```c++
#include <windows.h>
#include <vector>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
std::vector<RECT>* windowRects = reinterpret_cast<std::vector<RECT>*>(lParam);
RECT rect;
if (GetWindowRect(hwnd, &rect))
{
windowRects->push_back(rect);
}
return TRUE;
}
int main()
{
std::vector<RECT> windowRects;
if (EnumWindows(EnumWindowsProc, reinterpret_cast<LPARAM>(&windowRects)))
{
for (const auto& rect : windowRects)
{
printf("Window: (%d, %d) - (%d, %d)\n", rect.left, rect.top, rect.right, rect.bottom);
}
}
return 0;
}
```
这个示例代码会遍历所有窗口句柄,并将每个窗口的位置和大小信息存储在一个`RECT`结构体中,最终输出到控制台。
阅读全文