Windows客户区窗口大小设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows客户区窗口大小设置相关的知识,希望对你有一定的参考价值。

#define WINDOW_WIDTH 800

#define WINDOW_HEIGHT 600

Windows下设置的窗口(非客户区)长宽分别为800 x 600

所以当我们用函数GetClientRect(hwnd, &rect)获取客户区大小 rect.right为782   rect.bottom为555

所以如果要设置客户区成800 x 600

RECT rect1;
RECT rect2;
GetWindowRect(hwnd, &rect1);   // 四个坐标分别表示窗口矩形左上角和右下角在屏幕的X Y坐标
GetClientRect(main_window_handle, &rect2);  // 四个坐标分别表示客户区左上角和右下角的X Y坐标

 

// 2*WINDOW_WIDTH-rect2.right 等价于 WINDOW_WIDTH + (WINDOW_WIDTH – rect2.right)

// WINDOW_WIDTH – rect2.right 客户区 800782

// 将窗口扩大18(800-782)像素也等价于将客户区扩大18像素

MoveWindow(hwnd,

                    rect1.left,  rect1.top,

                    2*WINDOW_WIDTH-rect2.right,

                    2*WINDOW_HEIGHT-rect2.bottom,

                    true);

以上是关于Windows客户区窗口大小设置的主要内容,如果未能解决你的问题,请参考以下文章

AdjustWindowRectExForDpi 似乎没有调整客户区大小

在MFC怎么中设置窗口大小和位置?

如何配置 Windows 10 OpenSSH 客户端窗口大小

DX9从全屏切换到窗口给出错误的客户区

wxWidgets源码分析 - 窗口尺寸

pandas绘图设置背景