在进行编程时,实际操作的区域通常是窗口的客户区。因此,我们常常需要精确地指定窗口客户区的大小。然而,在创建窗口时,需要提供的参数却是整个窗口的大小。由于用户系统千差万别,而且窗鄹绦谟嚣口边框也随着窗口样式的不同而不尽相同,用一个固定的边框宽度值来相加肯定是行不通的。那么,怎样才能由指定的窗口客户区大小得到窗口大小呢?下面,就以VS2013为例,来向大家作一个介绍。
工具/原料
VS2103
一、问题描述
1、在 Windows 下编程时,有时需要精确指定窗口客户区的大小。比如说,制作一个俄蕃污旭鲤罗斯方块游戏,可能需要窗口客户区的宽高恰好是方块大小的整数倍。
2、然而,我们在创建窗口时使用的 CreateWindow 函数,它需要提供的参数却是窗口的大小,而非客户区大小。
3、那么,怎样才能根据给定的客户区大小得到窗口大小呢?
二、解决办法
1、其实,微软早就注意到了这个问题的存在,它提供了一个函数来帮助我们解决该问题,这个函数就是AdjustWindowRect。
2、该函数声明如图所示。
3、它的各个参数说明如下图。
4、现在,我们要想根据指定客户区的大小得到某个窗口的大小,只需要按如下方式调用该函数就可以了。