更改VB程序的图标

转自:http://xinhugo.blog.163.com/blog/static/16797936320109535452362/

更改VB程序的图标

这几天,用VB写了一些小程序。除了功能的实现,关注的就是界面的美化了。

而程序图标的是用户运行程序前,最先呈现在屏幕上的事物。所以,我认为程序有必要使用一个有自己特点的图标。

本文介绍的是Visual Basic 6.0图标更改方法,VB.NET,未必适用。

首先,介绍在程序编译为.exe(可执行文件)前,自定义图标的方法。

如果文章,是介绍“点击某个按钮,选择图标”之类的内容,就失去了文章的意义了。

以下,则是设置图标出错的提示。

<

Visual Basic 6.0中,对程序的图标,是有一定的要求的。

具体如下:

色深:256

尺寸:支持48 x 48(像素)或以下

格式:ico(就是Windows下的图标格式)

如果你的图标,没有满足这个上述条件,怎么办?

照例,需要用到PhotoShop

本文以目前最新版本PhotoShop 12.0.1 CS5为例,介绍图标修改方法。

默认情况下,PhotoShop是不支持.ico格式的,必须安装ico格式插件。

文件名: ICOFormat.zip

文件大小: 209613字节(204.70 KB)

修改日期: 2013-08-18 19:30

MD5: 7fe4a7109e4fc5145201861384c6e4cb

SHA1: 32ac6e0fbec645d041310d878d86b43698575c5e

SHA256: 7ddbed51c1c2669146e2adaad79b917c7a9a0dd35065a50c4b0ec7a720b6f597

CRC32: dd5e38c6

下载地址:http://pan.baidu.com/share/link?shareid=3071992019&uk=1327104607

为了照顾“比我更初学”的初学者,简单说明photoshop ico格式插件安装方法。

1.下载ICOFormat.zip

2.解压缩得到ICOFormat.8biICOFormat64.8bi

3.复制到photoshop安装目录下的Plug-ins文件夹

4.运行photoshop即可打开ico格式文件。

提示:如果打开时,提示“找不到增效工具入口点”,可能是内存不太够,请关闭一些暂时用不到的程序。还不行的话,重新安装photoshop试试。

下面,正式介绍photoshop里,图标制作修改方法。

1.要将喜欢的图片,用于VB生成的程序图标,源图片的格式,没有太多的限制。只要能用PhotoShop打开即可。

2.修改图片色深

图像→模式→索引颜色,即弹出下图窗口。


注意,截图中框住的“颜色”,必须为256色。然后,单击“确定”

3.修改图片尺寸

图像→图像大小,即弹出下图窗口

注意,截图中框住的“宽度、高度”,必须为48或以下。然后,单击“确定”

4.保存为.ico格式文件

文件→存储为→即弹出下图窗口

“格式”的下拉菜单,注意选择ICO格式。

经过以上步骤,制作出来的图标,已经可以在Visual Basic 6.0程序中使用了。

下面,介绍,在Visual Basic 6.0中,设置为刚刚制作好的图标方法。

1.VB窗口中,打开/新建一个工程。

2.在设计视图中,选择一个窗体。默认为“Form 1

3.在右侧的“属性”窗口中,找到“icon”(图标)。

4.单击“icon”右边的省略号,选择刚刚制作好的ico格式文件即可。

提示:图标文件,支持放置在,含中文或空格的目录中。

如果程序已经编译为exe了,还能修改图标吗?答案,是肯定的。

这里,需要用到的是ResHacker

操作→替换图标→在弹出的窗口中,选择用于替换的ico图标即可。

<

替换效果,见下图。

使用这种方法,标题栏的图标无法替换。

下面,总结一下,两种修改方法。

方法

优点

缺点

生成(编译)前设置

使用VB自身进行设置,没有用外部程序进行修改.exe,图标的设置最为彻底

需要将图片修改为256色,步骤相对多些。

生成(编译)后修改

步骤简单,支持使用RGB模式的.ico文件进行替换

标题栏的图标,无法替换

细心的朋友,应该能发现,本文的图片是在不同的系统进行截取的。

由于Visual Basic 6.0Windows 7系统,不太兼容。在设计界面,移动/选择控件,有些问题。所以,VB程序,都是在装了Windows XP SP3的虚拟机里面写的。

开着VirtualBoxPhotoshop 12.0.1 CS5Word 2010,才发现2G内存,真的不够用!期待DDR3内存降价,哈哈!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBirthday, SecEmail, UserMob, UserSex, RealNameFirst, RealName, CheckCardID, CheckCardType, Contactemail
在VB6.0中,数据访问接口有三种: 1、ActiveX数据对象(ADO) 2、远程数据对象(RDO) 3、数据访问对象(DAO) 1.使用ADO(ActiveX Data Objec,ActiveX数据对象)连接SQL Server 1)使用ADO控件连接 使用ADO控件的ConnectionString属性就可以连接SQL Server,该属性包含一个由分号分隔的argument=value语
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用。   特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如果电脑上有这些软件的话),因为现如今的360杀毒软件直接会对VB6.0软件误报,这样的话就可能会在安装过程中被误报阻止而导致安装失败,或者是安装后缺乏很多必须的组件(其它的杀毒软件或安全卫士之类的
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strCn, sql As String Dim db_host As String Dim db_user As String
  PPSM06S70:  Add  moddate  EDITSPRINTJOB:  MAX(TO_CHAR(ETRN.MODDATE, ‘yyyy/mm/dd/HH24:MI AM‘)) ACTUAL_SHIPDATE   4.Test Scenario (1) :Query SQL Test DN:8016578337 SELECT CTRN.TKCTID TRUCK_ID,        
  沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true">  CrystalReport1.rpt增加數據庫專家 在表單
Imports System.Threading Imports System Public Class Form1 Dim th1, th2 As Thread Public Sub Method1() Dim i As Integer For i = 1 To 100 If Me.Label1.BackColor =
Friend Const PROCESS_ALL_ACCESS = &H1F0FFF = 2035711 Friend Const PROCESS_VM_READ = &H10 Friend Const PROCESS_VM_WRITE = &H20 Friend Const PAGE_READONLY = &H2 Friend Const PAGE_READWRITE = &H4 Friend
以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As List(Of Byte()) Dim i = 0 Dim List As New List(Of Byte()) Dim bytes As New
Imports System.Data.SqlClient Public Class Form1 REM Public conn1 As SqlConnection = New SqlConnection("server=.; Integrated Security=False;Initial Catalog= mydatabase1; User ID= sa;password")