用SHGetFileInfo函数,详细代码一会儿给你。
解决方案 »
- 如何判断GATAGRID内是否有内容?
- 散分,祝大家情人节快乐!
- 怎么去掉vb窗口上的标题栏
- 怎么才能在窗体隐藏的时候在键盘上按一个键让它显示
- 求助!三维撒球问题!散分!
- 请问以下的文档应该怎么写
- 请教各位高手:如何取得long型数据的十六进制下的每个字节的高低位值,谢谢!!!
- 请问,如何获得鼠标在我程序窗口外的坐标,不是窗口中的坐标。100分。UP有分。
- 那位大哥知道如何象FlashGet一象把启动快捷方式加到IE菜单的工具里?
- 大家都很熟悉的DataGrid控件...!我搞不懂!!帮帮我!!!
- 请教:如何用VB开发在NT下的Server程序?
- 怎么去掉Vb里面usercontrol里面的垃圾属性事件方法
Const SHGFI_ICON = &H100
Const SHGFI_DISPLAYNAME = &H200
Const SHGFI_TYPENAME = &H400
Const MAX_PATH = 260
Private Type SHFILEINFO
hIcon As Long ' out: icon
iIcon As Long ' out: icon index
dwAttributes As Long ' out: SFGAO_ flags
szDisplayName As String * MAX_PATH ' out: display name (or path)
szTypeName As String * 80 ' out: type name
End Type
Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Private Sub Form_Paint()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: [email protected]
Dim FI As SHFILEINFO
'Get file info
SHGetFileInfo "c:\autoexec.bat", 0, FI, Len(FI), SHGFI_DISPLAYNAME Or SHGFI_TYPENAME Or SHGFI_ICON
Me.Cls
Me.Print "Filename: Autoexec.bat"
Me.Print "Typename: " + StripTerminator(FI.szTypeName)
Me.Print "Displayname: " + StripTerminator(FI.szDisplayName)
Me.Print "hIcon: "; FI.hIcon
Me.Print "iIcon: "; FI.iIcon
End Sub
'This fucntion is used to strip al the unnecessary chr$(0)'s
Function StripTerminator(sInput As String) As String
Dim ZeroPos As Integer
'Search the position of the first chr$(0)
ZeroPos = InStr(1, sInput, vbNullChar)
If ZeroPos > 0 Then
StripTerminator = Left$(sInput, ZeroPos - 1)
Else
StripTerminator = sInput
End If
End Function
CImageList gSysImageList; SHFILEINFO shFinfo;
HIMAGELIST hImgList = (HIMAGELIST)SHGetFileInfo( "C:\\", 0, &shFinfo,
sizeof( shFinfo ), SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
gSysImageList.Attach(hImgList);// 使用
// 设置ListView的图标列表为系统图标列表gSysImageList
m_listCtrl->SetImageList(&gSysImageList, LVSIL_SMALL);// 取得文件strFileName的系统图标序号
SHGetFileInfo( strFileName, 0, &shFinfo, sizeof( shFinfo ),
SHGFI_ICON | SHGFI_SMALLICON | SHGFI_TYPENAME );
// 设置ListView中的图标
nIndex = m_listCtrl->InsertItem(m_listCtrl->GetItemCount(),
strFileName, shFinfo.iIcon);
// 结束使用
gSysImageList.Detach();