【问题标题】:how to make a bitmap to fit to the static picture control of a property sheet?如何制作位图以适应属性表的静态图片控件?
【发布时间】:2014-09-12 08:45:49
【问题描述】:

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

谁能帮我实现这个目标

【问题讨论】:

    标签: winapi visual-c++ mfc


    【解决方案1】:

    您在不同系统上得到不同结果的原因是对话框和控件的大小是使用基于字体平均大小而不是像素绝对数量的“对话框单位”来确定的。

    默认情况下,静态图像控件会根据其显示的位图大小调整自身大小。因此,如果对话框本身最终比正常大(因为字体在物理上更大),图片控件将看起来缩小,留下一个间隙。

    您可以尝试在静态控件上设置SS_REALSIZECONTROL 样式。静态控件(显示图片时)的正常行为是将自身调整为位图的大小,但是SS_REALSIZECONTROL 样式会覆盖该行为,而是导致位图调整为控件的大小。然而,这样的结果可能不是最佳的(例如,纵横比可能是错误的),因此您可能希望自己考虑缩放位图。

    【讨论】:

    • 是的,你是对的。但我想说的是,例如,我有图片控件并将其放在属性页上(只不过是一个对话框)。我调整了图片控件的大小,所以控件的开头位于页面的一端并延伸到另一个边缘。我希望你能理解。对于属性页,我隐藏了标题,在这个页面上,我将横幅 bmp 放置在图片控件上,类似于标题。当我运行我的 .exe 然后我发现横幅位图和框架边缘之间的右上角边缘有间隙。为什么我们会在属性表中得到那个间隙?
    • 我所做的是我只是增加了图片控件的大小,现在这个差距消失了。它消失了,因为我们增加了图片控件的大小。我知道这可能不是正确的方法。但是,这个我就是这样尝试的。请告诉我如何在不增加超出对话框边界的控件大小的情况下解决这个空间问题。
    • 我在回答中解释了这一点。
    猜你喜欢
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 2022-12-15
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    相关资源
    最近更新 更多