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 客户区 800 – 782
// 将窗口扩大18(800-782)像素也等价于将客户区扩大18像素
MoveWindow(hwnd,
rect1.left, rect1.top,
2*WINDOW_WIDTH-rect2.right,
2*WINDOW_HEIGHT-rect2.bottom,
true);
以上是关于Windows客户区窗口大小设置的主要内容,如果未能解决你的问题,请参考以下文章
AdjustWindowRectExForDpi 似乎没有调整客户区大小