【编程小技能分享】VB6应用程序图标使用经验一则


VB6应用程序图标使用经验一则
见过有不少人写的程序不喜欢用图标。且不说工具栏等处的图标,很多人连窗体图标都用的是VB6默认的图标。但我觉得,再简单的有窗体的程序,也至少要弄一个主窗体图标才好,同时这个图标也充做编译后的EXE程序的主图标。事实上1998年诞生的VB6,对图标方面的支持也不多,比如不方便单独设置应用程序图标,而是只能将应用程序的图标“绑定”到某个窗体的图标上。而且,令人郁闷的是,并没有App.Icon这样的属性直接访问应用程序图标。唉,说了这么多,其实只是想分享一下我下面这套图标设置代码:

1,在任一标准模块中定义一个全局对象:

  Public g_AppIcon As StdPicture                                                  '应用程序图标


2,在启动窗体的Form_Load事件前部初始化这个对象

  Set g_AppIcon = Me.Icon


注意:除非很多程序的启动窗体(比如登录窗体)并不是主窗体,所以这个系统图标尽量在先出现的窗体中初始化。

3,在多窗体程序中,主窗体以外的窗体要使用主窗体图标的,一定要写成类似这样的:

  Me.Icon = g_AppIcon


注意:切忌写成 Me.Icon = frm启动窗体.Icon这样的。因为一般来说像登录窗体这种启动窗体,在登录后就退出了,你要是这样写,实际上造成了启动窗体的隐式加载,这样程序退出时反而因有隐藏的启动窗体没有退出,而导致进程实际上没有退出。


补充:

1,因为VB6中的对象是基于COM的,它的销毁和引用计数相关,所以不用担心Set g_AppIcon = Me.Icon这样后,会出现退出启动窗体会导致图标失效等相关问题。

2,这里没有使用LoadResPicture来加载应用程序图标,是因为这个函数只能载入低彩色的图标,而不像在设计器里设置窗体图标时,可以有24位真彩色的,并且运行时实际有效。

VisualBasic程序开发环境 程序开发 VisualBasic

disco 10 years, 6 months ago

路过,学习了!

六六六柳三三 answered 10 years, 6 months ago

程序都应该弄个图标好。

最后的纯爷们 answered 10 years, 6 months ago

蛮有意思的!

优芙露吉奴 answered 10 years, 6 months ago

VB6的窗体,运行设置了自定义图标时,运行时就会产生一个临时文件。



我还是习惯在资源文件中使用图标。

真彩色图标用 "CUSTOM" 类型资源装入,用API来改窗口图标。

Cathy丢丢 answered 10 years, 6 months ago

VB6中,LoadResData()好象只能用于装载自定义的资源。


的撒娇的肯定撒 answered 10 years, 6 months ago

很好啊,顶一个,学到了很多 

X-joker answered 10 years, 6 months ago

好东西,收藏了先。

猫猫猪OTL answered 10 years, 6 months ago

学习学习。。。

adkeidk answered 10 years, 6 months ago

很详细的命令!感谢分享!

brenden answered 10 years, 6 months ago

图标这个不是单位有规定的么

Lain02 answered 10 years, 6 months ago

支持!!支持!!支持!!支持!!支持!!

deleted answered 10 years, 6 months ago

你错,学习了

做你昼夜骑士 answered 10 years, 6 months ago

呵呵呵,领分了、

Adonis answered 10 years, 6 months ago

Your Answer