Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: wolf_kof en Octubre 03, 2010, 08:36:54 pm

Título: Imagen PNG en un ListView
Publicado por: wolf_kof en Octubre 03, 2010, 08:36:54 pm
Tengo una duda muy grande. Para ver los png en vb 6.0 utilizo los controles de Leandro el Ucimage y el UcImageList

Como puedo poner una imagen png dentro de un listview, por favor que alguien me ayude que me hace falta para terminar un proyecto.
Título: Re:Imagen PNG en un ListView
Publicado por: LeandroA en Octubre 04, 2010, 12:07:58 am
hola si estas trabajando con la version 5 te paso un ejemplo que es curioso porque nativamente acepta PNG sin hacer nada raro con GDI+, ahora si queres hacerlo con la version 6 ya vas a tener que utilizar GDI+ y convertir la imagen a un stdPicture

si vos te referias a los iconos y no a una imagen de fondo mira este enlace http://www.leandroascierto.com.ar/categoria/M%C3%B3dulos/articulo/Png%20en%20un%20ImageList.php

Código: [Seleccionar]
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CLR_NONE = &HFFFFFFFF

Private Type LVBKIMAGE
    ulFlags         As Long
    hbm             As Long
    pszImage        As String
    cchImageMax     As Long
    xOffsetPercent  As Long
    yOffsetPercent  As Long
End Type

Private Const LVBKIF_STYLE_TILE         As Long = &H10
Private Const LVBKIF_SOURCE_URL         As Long = &H2
Private Const LVM_FIRST                 As Long = &H1000
Private Const LVM_SETTEXTBKCOLOR        As Long = (LVM_FIRST + 38)
Private Const LVM_SETBKIMAGE            As Long = (LVM_FIRST + 68)

Public Sub SetLVPictureBK(ByVal hwnd As Long, ByVal Path As String, Optional ByVal bBrush As Boolean, Optional ByVal Top As Long, Optional ByVal Left As Long)
    Dim tLBI As LVBKIMAGE
    Dim m_BKImage As Long
   
    tLBI.yOffsetPercent = Top
    tLBI.xOffsetPercent = Left
    tLBI.pszImage = Path & Chr$(0)
    tLBI.cchImageMax = Len(Path) + 1
    tLBI.ulFlags = LVBKIF_SOURCE_URL
    If bBrush Then tLBI.ulFlags = tLBI.ulFlags Or LVBKIF_STYLE_TILE
    m_BKImage = SendMessage(hwnd, LVM_SETBKIMAGE, 0, tLBI)
    Debug.Print m_BKImage
    If m_BKImage Then SendMessage hwnd, LVM_SETTEXTBKCOLOR, 0&, ByVal CLR_NONE
End Sub

Private Sub Form_Load()
    SetLVPictureBK ListView1.hwnd, "d:\Mis documentos\Mis imágenes\Jasc Paint Shop Photo Album Images\Image2.png"
End Sub

sAludos
Título: Re:Imagen PNG en un ListView
Publicado por: wolf_kof en Octubre 05, 2010, 01:21:14 pm
Gracias Leandro por tu respuesta, mira te voy a explicar lo que quiero hacer mas detallado, tengo el listview y voy a cargar un listado de estudiantes, el listview tiene que estar en estilo reporte, y quiero que en la primera columna alla una imagen png de 24 * 24 con una imagen si es varon de un niño y si es mujer de una niña, no se si me hago entender, de antemano graxias Leandro.
Título: Re:Imagen PNG en un ListView
Publicado por: ssccaann43 en Octubre 05, 2010, 04:29:52 pm
Hay un modulo donde puedes cargar imagenes PNG en un objeto ImageList, luego lo que haces es enlazar el objeto con el listview y listo...!
Título: Re:Imagen PNG en un ListView
Publicado por: wolf_kof en Octubre 07, 2010, 07:50:01 pm
Eso estoy probando pero aun nada......  :'(
Título: Re:Imagen PNG en un ListView
Publicado por: wolf_kof en Octubre 08, 2010, 06:17:05 pm
Ya puedo poner la imagen en el subitem de un listview, ahora lo que me afecta es lo siguiente, como puedo hacer para que el listview1 me reconosca el ucImageList como un ImageList por que eso me hace falta..... LENADRO AYUDA