Visual Basic设计图标提取工具
2008-04-09 04:44:06来源:互联网 阅读 ()
打开VB,新建一窗体,其caption值为“图标提取工具”,添加部件Microsoft Common Dialog Control6.0,并在窗体上放置两个common dialog,分别命名为:dlgsave和dlgopen,用于制作保存和打开的通用对话框。放置一个textbox,命名为textbox,用于显示选择文件后的文件路径及文件名,再放置两个命令按钮,caption值分别为:“打开文件”、“取消”,放置一个picturebox,命名为Iconbox,用于显示提取出来的图标,在picturebox下方放置一个hscrollbar,用于多个图标的选择,界面排列如图(图1) 准备工作做完后,开始代码的编写。
在工程中新建一模块,进行API声明:
Option Explicit
Declare Function ExtractIcon& Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long)
Declare Function DrawIcon& Lib "user32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long)
ExtractIcon用于判断一个可执行文件或DLL中是否有图标存在,并将其提取出来,返回值为Long,如成功,返回指向图标的句柄;如文件中不存在图标,则返回零。如果nIconIndex设为-1,就返回文件中的图标总数;DrawIcon函数则在指定的位置画一个图标。 首先定义命令按钮1(打开文件按钮),代码如下:
Private Sub command1_Click()
dlgopen.ShowOpen '显示打开对话框
textbox.Text = dlgopen.Filename '将选择的文件名称显示在textbox内
End Sub
在取消命令按钮内输入:
Private Sub command2_Click()
Unload Me '退出程序
End Sub
在textbox的change事件中定义:
Private Sub textbox_Change()
If textbox.Text = "" Then '空则退出
Exit Sub
End If
Dim Icons As Integer
Icons = ExtractIcon(hInst, textbox, -1)
If Icons > 1 Then '图标数大于1,则scroll有效
Scroll.Enabled = True
Scroll.Max = Icons - 1
Scroll.Value = 0
Else
Scroll.Enabled = False
End If
Scroll_Change
End Sub
在scroll的change事件中输入代码:
Private Sub Scroll_Change()
Dim a As Integer
Iconbox.Cls '清除存在的图标
hIcon = ExtractIcon(0, textbox.Text, Scroll.Value) '根据scrollbar提取相应图标
a = DrawIcon(Iconbox.hDC, 5, 5, hIcon) '在picturebox显示相应图标
End Sub
scroll的scroll事件代码:
Private Sub Scroll_Scroll()
Scroll_Change
End Sub
最后需要保存选中的图标,我们设计将其存为bmp格式,直接定义iconbox的click事件,当在图形上点击鼠标左键时提示是否保存:
Private Sub Iconbox_Click()
On Error Resume Next
dlgsave.Filename = strSaveIconFile
dlgsave.CancelError = True
dlgsave.Filter = "Bitmap Image (*.bmp)|*.bmp"
dlgsave.ShowSave
strSaveIconFile = dlgsave.Filename
SavePicture Iconbox.Image, strSaveIconFile
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