VB编程获取文件中集成的图标

金牛上下

金牛上下

2016-02-19 21:08

图老师小编精心整理的VB编程获取文件中集成的图标希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~
----在Win95下的应用软件使用了打量精美的图标,而很多图标资源是集成在EXE、DLL文件中的(例如Win95的回收站就使用了Shell32.dll中的图标,31号图标表示回收站空,32号表示回收站有被删除文件)在我们编程中,可以利用Win95的API函数ExtractIcon可以将EXE、DLL文件中的图标资源取出,下面通过一个VB的例子通过使用该函数将文件中包含的图标取出并且在一个图片框内浏览。
  
  ----1、在Form1的General的Declarations中定义以下两个函数:
  
  PrivateDeclareFunctionExtractIconLib"shell32.dll"Alias"ExtractIconA"(ByValhInstAsLong,ByVallpszExeFileNameAsString,ByValnIconIndexAsLong)AsLong
  ExtractIcon函数包含三个参量:
  hInst表示当前的程序实例
  lpszExeFileName表示包含图标的资源文件名
  nIconIndex表示要取出的图标的序号
  
  ----如果nIconIndex为-1,则函数返回包含图标资源的文件的图标个数.
  
  ----从文件中取出图标资源前,应首先调用该函数获得文件中包含的图标资源的个数.
  
  ----如nIconIndex为图标资源的序号,则返回图标句柄.
  
  PrivateDeclareFunctionDrawIconLib"user32"(ByValhdcAsLong,ByValxAsLong,ByValyAsLong,ByValhIconAsLong)AsLong
  DrawIcon函数将图标画到一个图形设备上,
  hdc为图形设备句柄,x,y为起始位置,
  hIcon为图标句柄。
  
  ----定义三个全局变量:
  
  DimlNumAsLong'图标的序号
  DimlCountAsLong'文件中包含的图标的总数
  DimastrAsString'包含图标的文件名
  
  ----2、在Form1中添加以下控件:
  
  a、CommandButton,Name属性设置为COpen
  b、CommandButton,Name属性设置为
  CPrv,Enabled属性设置为False
  c、CommandButton,Name属性设置为
  CNext,Enabled属性设置为False
  d、CommonDialog,Name属性设置为
  CommonDialog1,Filter属性设置为"可执行文件(*.exe)|
  *.exe|动态链接库(*.dll)|*.dll|所有文件(*.*)|*.*"
  
  ----3、全部源程序如下:
  
  PrivateDeclareFunctionExtractIconLib"shell32.dll"Alias"ExtractIconA"(ByValhInstAsLong,ByVallpszExeFileNameAsString,ByValnIconIndexAsLong)AsLong
  PrivateDeclareFunctionDrawIconLib"user32"(ByValhdcAsLong,ByValxAsLong,ByValyAsLong,ByValhIconAsLong)AsLong
  DimlNumAsLong
  DimlCountAsLong
  DimastrAsString
  
  PrivateSubCNext_Click()'浏览下一个图标
  lNum=lNum 1
  x1=ExtractIcon(App.hInstance,astr,lNum)
  Form1.Refresh
  x2=DrawIcon(Form1.hdc,10,10,x1)
  CPrv.Enabled=True
  IflNum=lCountThen
  CNext.Enabled=False
  EndIf
  EndSub
  
  PrivateSubCOpen_Click()'打开文件
  Dimx1AsLong
  Dimx2AsLong
  
  CommonDialog1.ShowOpen
  lCount=ExtractIcon(App.hInstance,CommonDialog1.filename,-1)
  IflCount0Then
  astr=CommonDialog1.filename
  lNum=0
  Form1.Caption=astr
  CPrv.Enabled=False:CNext.Enabled=True
  x1=ExtractIcon(App.hInstance,astr,lNum)
  Form1.Refresh
  x2=DrawIcon(Form1.hdc,10,10,x1)
  Else
  x1=MsgBox("FileContainnoiconresource.")
  CPrv.Enabled=False:CNext.Enabled=False
  EndIf
  EndSub
  
  PrivateSubCPrv_Click()'浏览前一个图标
  lNum=lNum-1
  x1=ExtractIcon(App.hInstance,astr,lNum)
  Form1.Refresh
  x2=DrawIcon(Form1.hdc,10,10,x1)
  CNext.Enabled=True
  IflNum=0Then
  CPrv.Enabled=False
  EndIf
  EndSub->

展开更多 50%)
分享

猜你喜欢

VB编程获取文件中集成的图标

编程语言 网络编程
VB编程获取文件中集成的图标

如何在Web页面中集成文件上传功能

ASP
如何在Web页面中集成文件上传功能

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

RSS日趋流行!微软于Longhorn中集成

windows 操作系统
RSS日趋流行!微软于Longhorn中集成

熟悉VB的集成开发环境

编程语言 网络编程
熟悉VB的集成开发环境

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在ajax开发中集成数据库技术

Web开发
在ajax开发中集成数据库技术

经典与现代的结合:在MFC中集成RAD .NET框架

编程语言 网络编程
经典与现代的结合:在MFC中集成RAD .NET框架

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

撕碎梦想的伤感爱情分组_坚持永远比不过现实

撕碎梦想的伤感爱情分组_坚持永远比不过现实

VB中远程共享显示及声音的实现

VB中远程共享显示及声音的实现
下拉加载更多内容 ↓