como poner icono a un ListView1

Iniciado por rembolso, 25 Mayo 2009, 08:21 AM

0 Miembros y 1 Visitante están viendo este tema.

rembolso

bueno tengo un problema q me volvio loco pero bien loko  :-\ trata de  ponerle el icono a un ListView1 pero cuando  utilizo ImageList1 me da el error de type mismach
y lo ise en otro  proyecto y si se le pone y en el proyecto actual no  jaajj ayudeme  :-(

xkiz ™


rembolso

si si yo segui los pasos de hay pero me de error type misma no c porq  :-\

yovaninu

te paso mi codigo a ver si te sirve
en un form vacio dibujas un ListView1, un Command1, un ImageList1 y un Picture1

Luego este es el code completo

Código (vb) [Seleccionar]

Option Explicit

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 Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl As Long, ByVal i As Long, ByVal hdcDst As Long, ByVal x As Long, ByVal y As Long, ByVal fStyle As Long) As Long
Private Const SHGFI_SMALLICON = &H1         
Private Const SHGFI_SYSICONINDEX = &H4000     
Private Const SHGFI_TYPENAME = &H400       
Private Const MAX_PATH = 260

Private Type SHFILEINFO
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * MAX_PATH
    szTypeName As String * 80
End Type




Private Sub ObtenerIconoLocal()
Dim LI As ListItem
Dim FI As SHFILEINFO
Dim hImage As Long
ImageList1.ListImages.Clear

Dim IconoImageLIST As Byte
IconoImageLIST = 1

For Each LI In ListView1.ListItems
    Open "x" & LI.Text For Binary Access Read As #5
    Close #5
   
    Picture1.Cls
    Picture1.Width = 240: Picture1.Height = 240
   
    hImage = SHGetFileInfo("x" & LI.Text, ByVal 0&, FI, Len(FI), SHGFI_SYSICONINDEX Or SHGFI_SMALLICON)
   
 

    ImageList_Draw hImage, FI.iIcon, Picture1.hDC, 0, 0, SHGFI_SMALLICON
    ImageList1.ListImages.Add Key:="key" & ImageList1.ListImages.Count, Picture:=Picture1.Image
   
    Kill "x" & LI.Text
    ListView1.View = lvwReport
   
    Set ListView1.SmallIcons = ImageList1
    Set ListView1.Icons = ImageList1
   
    LI.SmallIcon = IconoImageLIST
    LI.Icon = IconoImageLIST
   
   
   
   
   IconoImageLIST = IconoImageLIST + 1
 
Next LI




End Sub



Private Function FileTipo(Ruta As String) As String
Dim FI As SHFILEINFO
SHGetFileInfo Ruta, 0, FI, Len(FI), &H10 Or &H400
FileTipo = FI.szTypeName
End Function



Private Sub Command1_Click()
'ALGUNOS EJEMPLOS
With ListView1.ListItems.Add(, , "programa.exe")
       .SubItems(1) = "kb"
End With

With ListView1.ListItems.Add(, , "musica.mp3")
       .SubItems(1) = "kb"
End With

With ListView1.ListItems.Add(, , "pelic.mpeg")
       .SubItems(1) = "kb"
End With


With ListView1.ListItems.Add(, , "Lyb.dll")
       .SubItems(1) = "kb"
End With

With ListView1.ListItems.Add(, , "tuto.pdf")
       .SubItems(1) = "kb"
End With

ObtenerIconoLocal

End Sub



rembolso

ok haora estoy analizando el codigo