我想获取文件的图标然后显示出来,我用ExtractIcon获取只能获取到32×32大小的图标,要怎样才能获取到48×48大小的图标呢?谢谢!
这是我的代码:
1个 CommonDialog,1个按钮,1个Picture。
Private Sub Command1_Click()Dim total As LongDim p(50) As LongDim i As IntegerMe.Picture1.ClsMe.CommonDialog1.Filter = "图标|*.Exe;*.Ico;*.Dll"Me.CommonDialog1.ShowOpenIf Dir(Me.CommonDialog1.FileName) <> "" ThenIf ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, -1) = 0 Then '如果没有图标MsgBox "No Icon!"Elsetotal = ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, -1)
'取得总图标数For i = 0 To total - 1p(i) = ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, i) '读取每个图标Next iFor i = 0 To total - 1 '依次显示每个图标DrawIcon Picture1.hdc, 34 * i, 0, p(0)Next iEnd IfEnd IfEnd Sub
这是我的代码:
1个 CommonDialog,1个按钮,1个Picture。
Private Sub Command1_Click()Dim total As LongDim p(50) As LongDim i As IntegerMe.Picture1.ClsMe.CommonDialog1.Filter = "图标|*.Exe;*.Ico;*.Dll"Me.CommonDialog1.ShowOpenIf Dir(Me.CommonDialog1.FileName) <> "" ThenIf ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, -1) = 0 Then '如果没有图标MsgBox "No Icon!"Elsetotal = ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, -1)
'取得总图标数For i = 0 To total - 1p(i) = ExtractIcon(App.hInstance, Me.CommonDialog1.FileName, i) '读取每个图标Next iFor i = 0 To total - 1 '依次显示每个图标DrawIcon Picture1.hdc, 34 * i, 0, p(0)Next iEnd IfEnd IfEnd Sub
解决方案 »
- 新人求解,关于LIKE 语句
- sos!!!显示器全屏显示跑马灯(大厅显示器的欢迎词)
- 1900-2090 的农历算法
- 请教一个关于没有窗体的可执行程序(来者有分)
- 如何在vb中将frame 分割成多个frame,类是下面的界面,谢谢
- 征求傻瓜式通用动态报表方案
- 急急急!请各位帮个忙!从网页中给activex控件传参数不好用的问题,等着交活呢~~~解决了就加分!!!
- 如何让程序在windows启动时运行(桌面出现前),就像windows的网络登陆对话框
- 無標題欄的窗口如何在任務欄上點擊響應最大化,最小化?
- 为什么我的可用分只有2229
- vb 不能读出IE8的网页地址
- 出钱定做一个可以突破内网和外网限制、可以相互通讯的控件!
Private Declare Function PrivateExtractIcons Lib "user32" _
Alias "PrivateExtractIconsA" (ByVal sFile As String, ByVal nIconIndex As Long, _
ByVal cxIcon As Long, ByVal cyIcon As Long, ByVal phicon As Long, piconid As Long, _
ByVal nIcons As Long, ByVal flags As Long) As Long
Private Const LR_DEFAULTCOLOR = &H0&Private Sub Form_Load()
Dim lret As Long
Dim phicon As Long
Dim picon As Longlret = PrivateExtractIcons("xxx.exe", 0, 32, 32, VarPtr(phicon), picon, 1, LR_DEFAULTCOLOR)
End Sub
picon
LR_DEFAULTCOLOR
这三个参数是什么?
如果用DrawIconEx显示这样写对吗?
DrawIconEx Picture1.hdc, 0, 0, lret, 48, 48, 0, 0, 3
VarPtr(phicon)
picon
LR_DEFAULTCOLOR
这三个参数是什么?
如果用DrawIconEx显示这样写对吗?
DrawIconEx Picture1.hdc, 0, 0, lret, 48, 48, 0, 0, 3
谢谢
picon是返回的提取数量;
LR_DEFAULTCOLOR是提取相关的标志;没有考虑之后的提取过程,给个PrivateExtractIcons函数的英文说明地址:
http://msdn.microsoft.com/en-us/ms648075(VS.85).aspx
以供参考。提取代码我想参考extracticon函数提取过程基本没问题。