想达到目的简单的说,就是自己做一个窗口,能够像打开Windows窗口时看到的情形一样,能看到指定文件夹里的文件夹图标、文件图标就行(不是文件列表)。但是不知VB里有没有类似的控件,或者其它地方有没有类似的控件。请高手指点。

解决方案 »

  1.   

    顶一下,我也想知道这个问题怎么办
    如果能解决如何把应用程序的图标提取出来,添加到ImageList里去,然后用注册表查找到各种文件的后缀对应的应用程序,就可以完成了
    但是第一步,如何提取应用程序的图标到ImageList……是个问题
      

  2.   

    哪位高人能指点一下,大恩大德小生此生没齿难忘啊。
    二楼那位高人能不能说说怎么样将指定文件夹中的项目读入到ListView中,我有MSDN,但是电脑暂时没空间装了,急啊,求救!
      

  3.   

    Public Const MAX_PATH As Integer = 260Public Type TypeIcon
        cbSize As Long
        picType As PictureTypeConstants
        hIcon As Long
    End Type
    Public Type CLSID
        id(16) As Byte
    End Type
    'Public Const MAX_PATH = 260
    Public Type SHFILEINFO
        hIcon As Long
        iIcon As Long
        dwAttributes As Long
        szDisplayName As String * MAX_PATH
        szTypeName As String * 80
    End Type
    Public Declare Function OleCreatePictureIndirect Lib "oleaut32.dll" (pDicDesc As TypeIcon, riid As CLSID, ByVal fown As Long, lpUnk As Object) As Long
    Public 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
    Public Const SHGFI_ICON = &H100
    Public Const SHGFI_LARGEICON = &H0
    Public Const SHGFI_SMALLICON = &H1Public Function IconToPicture(hIcon As Long) As IPictureDisp    'ICON 转 PictureDim cls_id As CLSID
    Dim hRes As Long
    Dim new_icon As TypeIcon
    Dim lpUnk As IUnknown    With new_icon
            .cbSize = Len(new_icon)
            .picType = vbPicTypeIcon
            .hIcon = hIcon
        End With
        With cls_id
            .id(8) = &HC0
            .id(15) = &H46
        End With
        Dim CA As ColorConstants
        hRes = OleCreatePictureIndirect(new_icon, cls_id, 1, lpUnk)
        If hRes = 0 Then Set IconToPicture = lpUnk
        
    End Function
    Public Function GetIcon(FileName, Optional ByVal SmallIcon As Boolean = True) As IPictureDisp   '获得文件ICONDim Index As Integer
    Dim hIcon As Long
    Dim item_num As Long
    Dim icon_pic As IPictureDisp
    Dim sh_info As SHFILEINFO
        If SmallIcon = True Then
            SHGetFileInfo FileName, 0, sh_info, Len(sh_info), SHGFI_ICON + SHGFI_SMALLICON
        Else
            SHGetFileInfo FileName, 0, sh_info, Len(sh_info), SHGFI_ICON + SHGFI_LARGEICON
        End If
        hIcon = sh_info.hIcon
        Set icon_pic = IconToPicture(hIcon)
        Set GetIcon = icon_pic
        
    End Function
    此为提取应用程序的图标'
    至于楼主的问题,偶有一个类似资源管理器的例子,将这个例子改改就可以完成楼主的 功能.
    如果需要,Email:[email protected]