我在vb6应用程序中遇到了一个非常奇怪的问题.它在其他所有机器上运行正常,但是当我在客户机上运行它时,图像无法正常显示.
这就是问题的样子
产品规格:
Windows 8 Pro(6.2 Build 9200)32位
处理器架构64位
Core 2 Duo T9600 2.80 Ghz
Dell Latitude 6400.
我在许多其他机器上部署了相同的应用程序,并使用不同的操作系统在不同的分辨率上进 它到处都是完美的.但在客户端的机器上无法正常工作.
没有更多的信息,很难确定,但这是一个猜测:
从Windows 7开始,如果系统注意到您的显示器分辨率过高,则会自动选择高DPI设置.
如果您的程序不支持DPI,则应用几种形式的appcompat之一(基于Windows的版本,某些系统选项和应用程序特征).根据Windows尝试的修复,位图图形最终可以缩放和像素化或不缩放,并显示为"小于预期".
为了给火灾添加燃料,人们经常尝试使用ScaleMode = vbPixels和/或手动转换来进行UI布局,并依赖于这些虚拟像素与实际屏幕指标之间的固定比率.硬编码15缇/像素(1440/96)非常常见,因为96 DPI VGA(和VGA衍生)方形像素屏幕长时间使用.
这种谬误可能导致这样的程序不正确地控制大小,即使其他人通过DPI补救调整大小.
您可以尝试通过高DPI读取有关此主题的信息.
在类似于窗体背景图像的情况下,您需要几个不同大小的位图,您可以在运行时选择这些位图,否则您需要自己缩放图像.