在最近的 MFC 编程中,我想起了在以前就存在的一个疑问,今天拿到C++技术网来提问下。
VS2015 工具,生成了一个新的 MFC 项目,就会看到一个新的 窗口设计 界面,默认为 320x200。
在 MFC 窗口设计中,只要使用鼠标轻微改变一下窗口的尺寸,就会变成 321x201,再使用组合键 Shift + 上箭头,就会神奇地发现,变成 321x199,之后无论怎么改动,都没有办法变回 320x200 尺寸。
接着之后再添加一个新的窗口,就又会发现新窗口的尺寸是单数,无论高度还是宽度。
通常来说,这不是一个很大的问题,但是,对于美化界面来说,却是一个问题。
就好比,弄一个编辑框,需求占用一半的高度,这就很难了。假设高度 1001,这样就没办法用除法计算出一半了,就没法达到要求了。
接下来我把测试图放上来,以作证明。
A-1) 默认生成窗口:
A-2) 改动后的默认窗口:
B-1) 添加的新窗口:
B-2) 改动后的新窗口:
或许这是一个为什么别人要重画新窗口的原因吧,不知道其他的 VS 版本怎么样,但我好像记得 VC6 也有过这种情况。
最后感谢C++技术网的回答。
C++技术网会员解答:
VC++的可视化工具中,对于窗口的大小不能直接输入数值进行设置,这是一大弊病,非常不方便。对于精细的调整,确实很麻烦。不过,解决办法总是有的。
你的问题就是不好调到合适的大小,新默认的大小也不是想要的。既然如此,那就手动来修改吧,不要通过界面拖放调整了。
可视化的资源视图里看到的控件、窗口,都在资源文件里有对应的文本文件。窗口的大小样式等都在资源文件里用文字定义着,我们可以直接修改文字就可以精确调整大小了。
看看我的软件的主界面大小:
也不是规整的。然后看看对应的资源文件里的定义:
资源文件里定义的大小就和可视化界面看到的是一样的。前面的两个零,是窗口的左上角的坐标(0,0)。所以,只要在资源文件.RC文件里修改即可。而修改的位置就是前面IDD_XXX这个位置的后面的数字。这个IDD_XXX就是你的窗口的ID,可以通过属性查看:
那么资源文件在哪呢?在【解决方案资源管理器】即.h和.cpp文件列表那个标签下:
不要直接双击打开,因为直接双击打开是以可视化的方式打开的,也就是你看到的窗口调整界面。我们要右击,“查看代码”,如图:
这样就打开了资源文件,和代码文件一样。你找到窗口的ID,然后修改一下后面的尺寸值,保存文件即可。这样可以按照数值直接设置,而不用一点点的拖动界面。不管是什么版本的IDE,这个方法都适用。