如何使位图适合属性表的静态图片控件?

时间:2014-09-11 12:07:18

标签: winapi visual-c++ mfc

我有一个属性表,并添加了三个页面。在第一页中,我添加了一个图片控件,并在该图片控件的属性中为" Image"属性我正在设置一个位图。并且能够非常成功地加载。但是,我在运行我的exe时面临的问题然后我在页面标题上获取位图(这是页面的某种横幅。)但是我注意到横幅位图和框架边缘之间存在一些差距(发生在右上角)。当我在日本机器上运行我的xxx.exe时,我发现如果我们在加载时采用对话框,那么工作表有点拉伸并且横幅位图没有完全拉伸直到工作表的边缘(右上角)然后我们可以看到它完全被拉伸到边缘。 那么我们怎样才能避免这个问题,就像操作系统一样,以及横幅应该拉伸到纸张边缘的任何分辨率。必须消除间隙。 我没有动态加载位图(在属性中设置。)

任何人都可以帮助我实现这个目标

1 个答案:

答案 0 :(得分:0)

在不同系统上获得不同结果的原因是对话框和控件的大小使用"对话框单元"它们基于字体的平均大小,而不是绝对像素数。

默认情况下,静态图像控件会将自身大小调整为其显示的位图大小。因此,如果对话框本身的结尾大于正常(因为字体在物理上更大),图片控件似乎会缩小,留下间隙。

您可以尝试在静态控件上设置SS_REALSIZECONTROL样式。静态控件(显示图片时)的正常行为是将自身大小调整为位图的大小,但SS_REALSIZECONTROL样式会覆盖该行为,而是将位图的大小调整为控件的大小。然而,结果可能不是最佳的(例如,宽高比可能是错误的),所以你可能想要自己调查位图。