我有一个针对 Windows 7 更新的旧 VB6 项目,包括 48x48 大小的图标。当我运行它时,任务栏中的图标出现褪色。
我想我在 .ico 文件中有所有必要的图标大小,但也许我遗漏了一些东西:
我在这里想念什么?
VB6 仅支持 16 色图标,这会导致抖动,因此,透明度信息仅限于指示像素是否透明的单个位。
与往常一样,您可以依靠一组 Windows 的 API 来克服此限制。这是一个论坛帖子的链接,解释了如何使用 256 色图标:VB6 System Tray Icon Color Depth
我从 XP 时代发现了一篇似乎也适用于 Windows 7的vbaccelerator 文章。关键是要按照信中的说明进行操作。它仅适用于已编译的应用程序,不适用于 IDE。最后,当您将 256x256 图像添加到您的图标时,请确保在保存图标时它不是 PNG 压缩的(大多数编辑器都倾向于将其隐藏在某个地方)。
解决方案很简单:启用视觉样式;将清单添加到您的应用程序和 VB IDE。
在 Vista 及更高版本中,将清单添加到 VB IDE 有点棘手。按照此处的说明进行操作:http: //vbnet.mvps.org/index.html?code/forms/ vbidevista.htm
然后,将清单添加到您的应用程序。这也将使您能够使您的应用程序以提升的方式启动(启动时具有管理员访问权限): 第 1 步:创建您的清单文本文件。有 2 个选项:普通清单文件和需要管理员权限的清单文件。
清单文件:(最后有下载链接)
清单管理文件:(最后有下载链接)
创建清单文件后,将其添加到项目中:
打开资源编辑器,然后单击“添加自定义资源...”(问号旁边的按钮)。选择您的清单文件并将其添加到编辑器中。现在,双击新添加的资源,编辑它的属性。设置这些值:
类型:#24
编号:1
现在,这是最后也是最重要的一步:
将您的项目设置为从 Sub Main 开始。在 Sub Main 中,首先要调用函数 InitCommonControls。在加载任何表单、控件或其他对话框之前,必须调用它!
InitCommonControls:(最后有下载链接)
而已!您的 VB6 尚未完全更新并使用视觉样式。
下载链接,如承诺: https ://www.dropbox.com/sh/neyueoozv87k1qd/AACbID8_aC718LCjs12T16Oqa?dl=0