首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb怎样获取48×48大小的图标解决方案

2012-01-24 
vb怎样获取4848大小的图标我想获取文件的图标然后显示出来,我用ExtractIcon获取只能获取到3232大小的图标,

vb怎样获取48×48大小的图标
我想获取文件的图标然后显示出来,我用ExtractIcon获取只能获取到32×32大小的图标,要怎样才能获取到48×48大小的图标呢?谢谢!
这是我的代码:
1个 CommonDialog,1个按钮,1个Picture。
Private Sub Command1_Click()

Dim total As Long

Dim p(50) As Long

Dim i As Integer

Me.Picture1.Cls

Me.CommonDialog1.Filter = "图标|*.Exe;*.Ico;*.Dll"

Me.CommonDialog1.ShowOpen

If Dir(Me.CommonDialog1.FileName) <> "" Then

If ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, -1) = 0 Then '如果没有图标

MsgBox "No Icon!"

Else

total = ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, -1)


'取得总图标数

For i = 0 To total - 1

p(i) = ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, i) '读取每个图标

Next i

For i = 0 To total - 1 '依次显示每个图标

DrawIcon Picture1.hdc, 34 * i, 0, p(0)

Next i

End If

End If

End Sub

[解决办法]
VarPtr(phicon)传进去一个文件中icon资源数组头指针,如果取一个,就像上面那样传,返回的是icon资源HICON类型指针,类似于loadicon返回值;
picon是返回的提取数量;
LR_DEFAULTCOLOR是提取相关的标志;

没有考虑之后的提取过程,给个PrivateExtractIcons函数的英文说明地址:
http://msdn.microsoft.com/en-us/ms648075(VS.85).aspx
以供参考。

提取代码我想参考extracticon函数提取过程基本没问题。

热点排行