c 如何获取桌面窗口大小
1、GetWindowRect函数原型如下:
BOOL GetWindowRect(HWND hWnd,LPRECT lpRect);
第一个参数是窗口句柄。第二个参数是RECT的结构体指针。
2、RECT结构体的定义如下图所示。

3、将左上角和右下角的x轴坐标相减即可获取宽度。
将左上角和右下角的y轴坐标相减即可获取高度。
1、这里以获取记事本程序的窗口大小为例。首先在电脑上运行记事本,按WIN+R打开运行输入notepad,即可打开记事本程序。

2、运行后,先要获取记事本的窗口句柄,通过FindWindow函数即可。第一个参数是窗口类,记事本的窗口类为notepad,后面是窗口标题,可以设置也可以不设置。

3、接下来定义 rect 结构体变量,然后调用GetWindowRect()来将左上角和右下角的坐标保存到rect结构体变量中,然后计算出高度和宽度。

4、最后输入宽度和高度的大小即为窗口的大小。

5、总的代码及运行效果如下图所示。
//添加上Api函数调用声明文件
#include <tchar.h>
#include <windows.h>
int main()
{
//获取无标题记事本的窗口句柄 HWND hwnd_notepad = FindWindow(_T("notepad"), 0);
if (hwnd_notepad == 0) {
MessageBox(0, _T("dont run notepad"), _T("error"), MB_OK);
return 0;
}
//获取窗口大写
RECT rect;
GetWindowRect(hwnd_notepad, &rect);
LONG height = rect.bottom - rect.top;
LONG width = rect.right - rect.left;
//输出窗口大小信息
TCHAR tzbuf[256] = { 0 };
wsprintf(tzbuf, _T("%s%d\n%s%d"), _T("height="), height, _T("width="), width);
MessageBox(0, tzbuf, _T("notepad window size"), MB_OK);
return 0;}
