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函数提取过程基本没问题。