c 如何获取桌面窗口大小

2025-11-12 17:53:02

1、GetWindowRect函数原型如下:

BOOL GetWindowRect(HWND hWnd,LPRECT lpRect);

第一个参数是窗口句柄。第二个参数是RECT的结构体指针。

2、RECT结构体的定义如下图所示。

c 如何获取桌面窗口大小

3、将左上角和右下角的x轴坐标相减即可获取宽度。

将左上角和右下角的y轴坐标相减即可获取高度。

1、这里以获取记事本程序的窗口大小为例。首先在电脑上运行记事本,按WIN+R打开运行输入notepad,即可打开记事本程序。

c 如何获取桌面窗口大小

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

c 如何获取桌面窗口大小

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

c 如何获取桌面窗口大小

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

c 如何获取桌面窗口大小

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;}

c 如何获取桌面窗口大小

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢