明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7321|回复: 11

有关vb按钮上显示图片的问题.

  [复制链接]
发表于 2003-12-15 21:56:00 | 显示全部楼层 |阅读模式
程序需要100个按钮,但窗体上一页只能放置20个,因此设置一个"下一页"按钮,按下后重新定义窗体上20个按钮的功能.
我需要在这些按钮上设置图片,以起到提示作用.这样问题来了,按钮上的图片是以绝对路径引用的图片文件,由于窗体上只有20个按钮,也就是说只能引用20个图片文件,以后80个按钮的图片文件必须和编译好的程序同时存在才能引用.
为了编译好的程序文件的简洁,我想整个程序就一个文件,这就需要把所有图片都加载进去,请问如何实现?或者按钮上的图片不用别的文件,直接在按钮上画,怎样画(线段,弧线等)?或者有其它方法能达到我的目的?
发表于 2003-12-15 22:26:00 | 显示全部楼层
能不能先把路径定义好 加载窗体的石斛直接调用呢?
发表于 2003-12-15 22:38:00 | 显示全部楼层
imagelist控件在设计时装载,运行时引用即可!
发表于 2003-12-15 22:38:00 | 显示全部楼层
用ImageList控件,可以把所有的图片保存到该控件中,然后在程序中调用。
发表于 2003-12-15 22:40:00 | 显示全部楼层
用资源也行!
发表于 2003-12-15 22:42:00 | 显示全部楼层
MCCAD,真是英雄所见略同!
 楼主| 发表于 2003-12-15 22:50:00 | 显示全部楼层
哪有imagelist控件呀,vb5典型安装没看到.
5楼的朋友能不能说详细点,什么资源?
发表于 2003-12-15 22:53:00 | 显示全部楼层
[转帖]

众所周知,在采用VC开发商品化软件的时,代码项目中都会包括资源文件(.RES),其中包括了应用程序中诸如菜单标题,图标,位图,消息字符串等资源。一般说来,采用资源文件的最大好处就是当需要把你的应用程序在国际上发布时,可以很容易实现语言的转换,对于我们一般的开发用户,这个用处好像不大。其实,抛开这点不谈,资源文件还有一个很大的优点,它可以允许你很容易的将大量的位图和图标直接包含在项目中,从资源文件中处理和安装这些图像要比从单个文件中快的多。

---- 对于采用VB开发的用户来说,同样可以采用类似VC中的资源文件,但在VB6.0推出以前,只能靠手工来建立和编译资源文件,比较麻烦。而在最新的VB6.0企业版中,外挂式包含了资源文件编辑器,极大地方便了资源文件的建立。下面本文将详细介绍资源文件的建立过程。

---- 一.VB中资源文件的分类

---- 通常将资源分为两类:1.字符串资源,包括菜单和文本中使用的字符串,如"Hello World"等;2.二进制资源,如位图(.BMP),图标(.ICO),光标(.CUR),声音(.WAV)和动画(.AVI)等。对于不同的资源,要用不同的调入函数,这在下面会介绍。

---- 二.资源文件的建立

---- 采用如下步骤来建立资源文件:

---- 1.启动VB6.0企业版,新建一个标准 Exe 工程,即工程1,有一个缺省窗体,form1。如果采用应用程序向导建立工程,那么在向导中会提示是否建立资源文件,这也是建立资源文件的一个方法。

---- 2.在[外接程序]菜单下,点击[外接程序管理器],弹出外接程序管理器窗口,窗口左边的列表中列出了所有的外接程序,鼠标双击"VB6资源编辑器"。然后按[确定]按钮返回主窗口。

---- 3.此时系统弹出资源编辑器窗口,同时在主窗口的工具条上添加了快捷按钮。而在弹出的资源编辑器窗口顶部,也有一些快捷按钮中,其中靠右边有五个按钮,分别对应添加字符串,光标,图标, 位图,自定义资源等命令。

---- 4.添加字符串。鼠标点击添加字符串快捷按钮,弹出编辑字符串窗口,系统自动给出字符串资源的标识号,用户可在此依次输入、编辑、修改、删除对应不同菜单,按钮,消息提示的字符串。对不同类型的字符串,用户最好设定特定的标识号规则。在本例中,建立的字符串资源如下:

标识号     中文名称    标识号      中文名称
101        文件[F]      202         确定[Y]   
102           打开[O]      303         我的演示程序
103           退出[X]

---- 5.依次建立光标、图标,位图等其他资源,注意对于WAV、AVI等特殊资源,需要采用年[添加自定义资源]方法建立。最后在窗口上树形视图(TreeView)中,分类列出了各项资源。在本例中,各添加了一个位图文、图标文件、光标文件,分别是MyBmp.BMP,MyIcon.ICO,MyCur.CUR。
---- 6.保存资源文件,缺省为工程1.res。

---- 三.在应用程序中使用资源文件

---- 在form1上添加如下控件:

---- 1.按钮:Name=cmdButton1

---- 2.图标控件:Name=img1

---- 3.图形控件:Name=Pic1

---- 在Form1上添加三个菜单,分别为

  菜单名    对应标识号(菜单的caption)
1.mnuFile       101
2.mnuOpen       102
3.mnuexit       103
并添加如下代码:
sub form1_load()
'将字符串调入控件属性
mnufile.Caption = LoadResString(101)
mnuopen.Caption = LoadResString(102)
mnuexit.Caption = LoadResString(103)
Cmdbutton1.Caption = LoadResString(202)
Me.Caption = LoadResString(303)
End sub
Sub cmdbutton_Click()
  '将图形,图标,鼠标调入相应的控件
  Pic1.Picture = LoadResPicture(101, vbResBitmap)
  img1.Picture = LoadResPicture(101, vbResIcon)
  Me.MousePointer = 99
  Me.MouseIcon = LoadResPicture(101, vbResCursor)
End sub

---- 运行,系统编译资源文件,显示的菜单条如资源文件中的字符串所示,然后单击按钮cmdbutton1,调入位图,图标,并改变鼠标形状。
---- 四.函数常量说明

---- 上例中用到的函数LoadResString,LoadResPicture是VB中Global 对象下的方法函数。

---- 用法如下:

---- 1.LoadResString(index):index是必需的一个整数,它用来指定资源文件中数据的标识符 (ID) 。返回一个文本字符串。

---- 2.LoadResPicture(index, format):index必需的。它是一个整数或字符串,它用来指定资源文件中数据的标识符 (ID) ,format是必需的一个数值或常数,指定返回数据的格式。 返回一个 Picture 对象,例如位图、图标或光标。

---- 常量vbResBitmap ,vbResString, vbResIcon是系统常量,可在VB环境下的对象浏览器中找到其定义。

---- 五.结束语

---- 如上所述,资源文件除使软件国际化更容易外,它的优点还在于:

---- 1.提高应用程序的速度,图像文件作为资源文件装载要比从外部文件装载快得多。

---- 2.更容易处理多个图像,在VB4以前的版本中,一般采用多个图像控件装载多个图像,然后每次显示一个图像,有了资源文件,"可以将图像储存在一个资源文件中,然后将各根据需要装载在一个控件中,从而避免了处理多个控件的复杂性并节约了时间"(引自<< VB5.0开发与技巧 >>)。 更详细的介绍可参阅MSDN资料。  
发表于 2003-12-15 23:21:00 | 显示全部楼层
引用部件Microsoft windows common controls 6.0
发表于 2003-12-16 11:51:00 | 显示全部楼层
采用资源的方式比较合适,即需要时才加载。而在程序中保存图片,那么将很占内存,比如100张图片,如果以10K计,光图片就需要1000K的内存。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 12:42 , Processed in 0.188206 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表