VB6与图像表现奇怪,任何专家?

Dav*_*vid 0 vb6

我在vb6应用程序中遇到了一个非常奇怪的问题.它在其他所有机器上运行正常,但是当我在客户机上运行它时,图像无法正常显示.

这就是问题的样子 示范 产品规格:

Windows 8 Pro(6.2 Build 9200)32位
处理器架构64位
Core 2 Duo T9600 2.80 Ghz
Dell Latitude 6400.

我在许多其他机器上部署了相同的应用程序,并使用不同的操作系统在不同的分辨率上进 它到处都是完美的.但在客户端的机器上无法正常工作.

Bob*_*b77 6

没有更多的信息,很难确定,但这是一个猜测:

从Windows 7开始,如果系统注意到您的显示器分辨率过高,则会自动选择高DPI设置.

如果您的程序不支持DPI,则应用几种形式的appcompat之一(基于Windows的版本,某些系统选项和应用程序特征).根据Windows尝试的修复,位图图形最终可以缩放和像素化或不缩放,并显示为"小于预期".

为了给火灾添加燃料,人们经常尝试使用ScaleMode = vbPixels和/或手动转换来进行UI布局,并依赖于这些虚拟像素与实际屏幕指标之间的固定比率.硬编码15缇/像素(1440/96)非常常见,因为96 DPI VGA(和VGA衍生)方形像素屏幕长时间使用.

这种谬误可能导致这样的程序不正确地控制大小,即使其他人通过DPI补救调整大小.

您可以尝试通过高DPI读取有关此主题的信息.

在类似于窗体背景图像的情况下,您需要几个不同大小的位图,您可以在运行时选择这些位图,否则您需要自己缩放图像.