在我的vb6应用程序中,我面临着非常奇怪的问题。它在其他每台机器上都能正常工作,但是当我在我客户的机器上运行它时,图像不能正常显示。
这就是问题的样子

Specifications:
Windows 8 Pro (6.2 Build 9200) 32位 处理器架构64位 核心2双T9600 2.80GHz 戴尔纬度6400。
我在许多其他机器上部署了相同的应用程序,并在不同操作系统的不同分辨率上进行了测试。无论在哪里,它都在发挥作用。但在客户机器上不能正常工作。
发布于 2013-10-11 18:20:30
如果没有更多的信息,很难确定,但以下是一个猜测:
从Windows 7开始,如果系统注意到您有一个分辨率过高的监视器,它会自动选择较高的DPI设置。
如果您的程序不知道DPI,那么应用几种形式的appcompat之一(基于Windows的版本、一些系统选项和应用程序特性)。根据Windows尝试修复的方式,位图图形可能最终会缩放和像素化,或者不会缩放,并显示为“小于预期”。
为了火上浇油,人们经常尝试使用ScaleMode = vbPixels和/或手动转换来进行UI布局,并依赖于这些虚拟像素与实际屏幕度量之间的固定比率。硬编码15 Twips/Pixel (1440/ 96 )是非常常见的,因为96个DPI VGA (和VGA-导数)方形像素屏幕在使用了很长时间。
这一谬误可能导致这样一个程序不适当地调整控件的大小,即使其他程序通过DPI补救措施调整大小。
您可以尝试通过高新闻部阅读有关此主题的信息。
在类似于表单背景图像的情况下,您要么需要几个不同大小的位图供您在运行时从中选择,要么您需要自己缩放图像。
https://stackoverflow.com/questions/19322734
复制相似问题