为什么我的项目的图标在Windows 7中看起来如此可怕?

时间:2013-01-20 19:55:21

标签: windows-7 vb6

我有一个旧的VB6项目,我更新了Windows 7,包括48x48大小的图标。当我运行它时,任务栏中的图标显示为褪色。

enter image description here

我认为我在.ico文件中有所有必要的图标大小,但也许我错过了一些东西:

enter image description here

我在这里缺少什么?

3 个答案:

答案 0 :(得分:4)

VB6仅支持16个颜色图标,这将导致抖动,因此,透明度信息仅限于指示像素是否透明的单个位。

与往常一样,您可以依靠一组Windows API来克服此限制。 这是一个论坛帖子的链接,解释了如何使用256色图标:VB6 System Tray Icon Color Depth

答案 1 :(得分:3)

我发现XP版本中的vbaccelerator article似乎也适用于Windows 7。关键是按照信中的说明进行操作。它只适用于已编译的应用程序,而不适用于IDE。最后,当您将256x256图像添加到图标时,请确保在保存图标时不对其进行PNG压缩(大多数编辑器都偏好隐藏在某处的图像)。

答案 2 :(得分:0)

解决方案非常简单: 启用视觉样式;将清单添加到您的应用程序和VB IDE中。

在Vista及更高版本中向VB IDE添加清单有点棘手。按照这里的说明: http://vbnet.mvps.org/index.html?code/forms/vbidevista.htm

然后,将清单添加到您的应用程序中。 这还可以使您的应用程序以提升的方式启动(启动时具有管理员访问权限): 第1步:创建清单文本文件。 有两个选项:普通清单文件和需要管理员权限的清单文件。

清单文件: (下载最后的链接)

清单管理文件: (下载最后的链接)

创建清单文件后,将其添加到项目中:

打开资源编辑器,然后单击“添加自定义资源...”(问号旁边的按钮)。 选择清单文件并将其添加到编辑器中。 现在,双击新添加的资源,编辑它的属性。 设置这些值:

输入:#24

ID:1

现在,这是最后也是最重要的一步:

将项目设置为以Sub Main开头。 在Sub Main中,作为第一件事之一,您可以调用函数InitCommonControls。 在加载任何表单,控件或其他对话框之前,这已经被调用了!

InitCommonControls函数: (下载最后的链接)

就是这样! 您的VB6不是完全最新的并且使用视觉样式。

下载链接,如承诺: https://www.dropbox.com/sh/neyueoozv87k1qd/AACbID8_aC718LCjs12T16Oqa?dl=0