como agregar iconos a comand button

Iniciado por choquito, 15 Enero 2007, 23:21 PM

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

choquito

hola señores mi problema es el siguiente:
quiero que aparezca un dibujo en un command button y que este dibujo se ubique en una esquina para poder escribir un texto en este command button
esperando su comprension y su pronta respuesta me despido su amigo manuel lima - peru

CeLaYa

agrega a tu proyecto "Microsoft Forms 2.0 Objet Library", y usa las propiedades Picture y PicturePosition para ponerle una imagen y decirle en donde la alinie.
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

choquito

AMIGO CELAYA MUCHAS GRACIAS POR TU AYUDA,.. AHORA SI NO FUERA MUCHA MOLESTIA, SABEZ EN QUE PAGINA PUEDO ENCONTRAR DIBUJOS O ICONOS DE POR EJEMPLO : UN DIBUJO DE NUEVO , GUARDAR, MODIFICAR, ELIMINAR

CeLaYa

#3
esos vienen en "C:\Archivos de programa\Microsoft Visual Studio\COMMON\Graphics", pero son al estilo w98, si quieres unos iconos mejores sacalos de "c:\windows\system32\shell32.dll"


te dejo una función para sacar los iconos:

En un módulo pones:

Option Explicit

Private Type PicBmp
   Size As Long
   tType As Long
   hBmp As Long
   hPal As Long
   Reserved As Long
End Type

Private Type GUID
   Data1 As Long
   Data2 As Integer
   Data3 As Integer
   Data4(7) As Byte
End Type

Public FILE_SHELL As String

Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long

Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hicon As Long) As Long

Public Sub GetIconFromFile(ByRef Lista As ImageList, FileName As String, iconIndex As Long, UseLargeIcon As Boolean) ' As Picture
    Dim X As Long
    ' Parametros:
    ' FileName - Nombre Fichero (EXE o DLL) que contiene los iconos
    ' IconIndex - Indice del icono a extraer, comienza en 0
    ' UseLargeIcon-True para icono grande, False para icono pequeño
    ' Returns: Objeto Picture, donde devolvera el icono
   
    Dim hlargeicon As Long, hsmallicon As Long, selhandle As Long
   
    ' El objeto requiere una referencia a "Standard OLE Types"
    Dim pic As PicBmp, IPic As IPicture, IID_IDispatch As GUID
    X = 0
    'While ExtractIconEx(FileName, X, hlargeicon, hsmallicon, 1) <> 0
        If ExtractIconEx(FileName, iconIndex - 1, hlargeicon, hsmallicon, 1) <> 0 Then
            If UseLargeIcon Then
                selhandle = hlargeicon
            Else
                selhandle = hsmallicon
            End If
           
            With IID_IDispatch
                .Data1 = &H20400
                .Data4(0) = &HC0
                .Data4(7) = &H46
            End With
           
            ' Fill Pic with necessary parts.
            ' Configura el picture con las partes necesarias
            With pic
                .Size = Len(pic) ' Longitud de la extructura.
                .tType = vbPicTypeIcon ' Tipo de Picture (bitmap).
                .hBmp = selhandle ' Handle al bitmap.
            End With
           
            ' Crea el objeto Picture
            Call OleCreatePictureIndirect(pic, IID_IDispatch, 1, IPic)
           
            ' Devuelve el objeto Picture
            Lista.ListImages.Add , , IPic
           
            'Set GetIconFromFile = IPic
           
            DestroyIcon hsmallicon
            DestroyIcon hlargeicon
            X = X + 1
        End If
    'Wend
End Sub


y en el form:

GetIconFromFile ImageList1, "c:\windows\system32\shell32.dll", Numero_de_icono, True
picture1.Picture = ImageList1.ListImages(1).Picture



lo que hago aqui es poner las imagenes en un ImageList y luego de alli las paso a cualquier control, espero te sirva
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.