VB编程获取文件中集成的图标
2008-02-23 07:00:19来源:互联网 阅读 ()
---- 1、 在Form1 的General 的Declarations 中 定 义 以 下 两 个 函 数:
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long,ByVal lpszExeFileName As String,ByVal nIconIndex As Long) As Long
ExtractIcon函数包含三个参量:
hInst表示当前的程序实例
lpszExeFileName表示包含图标的资源文件名
nIconIndex表示要取出的图标的序号
---- 如 果nIconIndex 为-1, 则 函 数 返 回 包 含 图 标 资 源 的 文 件 的 图 标 个 数.
---- 从 文 件 中 取 出 图 标 资 源 前, 应 首 先 调 用 该 函 数 获 得 文 件 中 包 含 的 图 标 资 源 的 个 数.
---- 如nIconIndex 为 图 标 资 源 的 序 号, 则 返 回 图 标 句 柄.
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
DrawIcon函数将图标画到一个图形设备上,
hdc为图形设备句柄,x,y为起始位置,
hIcon为图标句柄。
---- 定 义 三 个 全 局 变 量:
Dim lNum As Long '图标的序号
Dim lCount As Long '文件中包含的图标的总数
Dim astr As String '包含图标的文件名
---- 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、 全 部 源 程 序 如 下:
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long,ByVal hIcon As Long) As Long
Dim lNum As Long
Dim lCount As Long
Dim astr As String
Private Sub CNext_Click() '浏览下一个图标
lNum = lNum 1
x1 = ExtractIcon(App.hInstance, astr, lNum)
Form1.Refresh
x2 = DrawIcon(Form1.hdc, 10, 10, x1)
CPrv.Enabled = True
If lNum = lCount Then
CNext.Enabled = False
End If
End Sub
Private Sub COpen_Click() '打开文件
Dim x1 As Long
Dim x2 As Long
CommonDialog1.ShowOpen
lCount = ExtractIcon(App.hInstance, CommonDialog1.filename, -1)
If lCount > 0 Then
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("File Contain no icon resource.")
CPrv.Enabled = False: CNext.Enabled = False
End If
End Sub
Private Sub CPrv_Click() '浏览前一个图标
lNum = lNum - 1
x1 = ExtractIcon(App.hInstance, astr, lNum)
Form1.Refresh
x2 = DrawIcon(Form1.hdc, 10, 10, x1)
CNext.Enabled = True
If lNum = 0 Then
CPrv.Enabled = False
End If
End Sub
上一篇: 实现窗体内部的左右移动
下一篇: 封面的设计
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash