21xrx.com
2025-04-28 15:05:29 Monday
文章检索 我的文章 写文章
C++如何获取窗口大小?
2023-07-07 19:17:24 深夜i     102     0
C++ 获取 窗口大小

在C++中,获取窗口大小并不是一件难事。本文将介绍两种获取窗口大小的方法:通过GetClientRect()函数获取客户区大小,以及通过GetWindowRect()函数获取窗口矩形大小。

1. 通过GetClientRect()函数获取客户区大小

GetClientRect()函数是Windows API中的一个函数,它可以获取一个窗口的客户区矩形大小。该函数的原型如下:

BOOL GetClientRect(
 HWND  hWnd,
 LPRECT lpRect
);

其中,hWnd是要获取大小的窗口句柄;lpRect是一个RECT结构体指针,用来接收窗口客户区矩形的左上角和右下角坐标。

使用该函数可以获取当前窗口客户区的大小,代码如下:

HWND hwnd = GetForegroundWindow();
RECT rect;
GetClientRect(hwnd, &rect);
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
printf("Window width: %d\n", width);
printf("Window height: %d\n", height);

上述代码中,首先通过GetForegroundWindow()函数获取当前窗口句柄,然后通过GetClientRect()函数获取窗口客户区矩形大小,并计算出窗口的宽度和高度。最后,通过printf()函数输出宽度和高度。

2. 通过GetWindowRect()函数获取窗口矩形大小

有时,我们需要获取整个窗口的大小,而不仅仅是客户区大小。此时,我们可以使用GetWindowRect()函数来获取窗口矩形大小。

GetWindowRect()函数也是Windows API中的一个函数,它可以获取一个窗口的矩形大小。该函数的原型如下:

BOOL GetWindowRect(
 HWND  hWnd,
 LPRECT lpRect
);

其中,hWnd是要获取大小的窗口句柄;lpRect是一个RECT结构体指针,用来接收窗口矩形的左上角和右下角坐标。

使用该函数可以获取当前窗口的矩形大小,代码如下:

HWND hwnd = GetForegroundWindow();
RECT rect;
GetWindowRect(hwnd, &rect);
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
printf("Window width: %d\n", width);
printf("Window height: %d\n", height);

上述代码中,首先通过GetForegroundWindow()函数获取当前窗口句柄,然后通过GetWindowRect()函数获取窗口矩形大小,并计算出窗口的宽度和高度。最后,通过printf()函数输出宽度和高度。

总结:

在C++中,获取窗口大小并不是一件难事。除了GetClientRect()函数,我们还可以使用GetWindowRect()函数来获取窗口的矩形大小。通过上述两种方法,我们可以轻松地获取窗口的大小,并进行相应的操作。

  
  

评论区