当前位置:C++技术网 > 资讯 > [MFC] 小疑问,MFC窗口设计问题,界面尺寸无法手动对称

[MFC] 小疑问,MFC窗口设计问题,界面尺寸无法手动对称

更新时间:2016-11-15 14:40:04浏览次数:1+次

    在最近的 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,这个方法都适用。