elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Iconos en un Menu
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Iconos en un Menu  (Leído 1,334 veces)
ElectroSPAIDER

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Iconos en un Menu
« en: 11 Febrero 2008, 01:43 am »

Hola, buenas tardes. Escribo porque hay un tema al que no soy capaz de encontrar solución y que me está llevando muchos quebraderos de cabeza. Resulta que he coneguido insertar iconos y .bmp en un menú mediante esta subrutina:

Código:
'API's
Private Declare Function GetMenu Lib "user32" _
     (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" _
     (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function SetMenuItemBitmaps Lib "user32" _
     (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, _
     ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long

Const MF_BYPOSITION = &H400&

'Procedimiento
Private Sub SetMenuIcon()
     Dim mHandle As Long, lRet As Long, sHandle As Long
     mHandle = GetMenu(hwnd)
     sHandle = GetSubMenu(mHandle, 3)
     lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, Image1.Picture, Image1.Picture)
     lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, Image1.Picture,  Image1.Picture)
     lRet = SetMenuItemBitmaps(sHandle, 3, MF_BYPOSITION, Image1.Picture, Image1.Picture)
     lRet = SetMenuItemBitmaps(sHandle, 4, MF_BYPOSITION, Image1.Picture, Image1.Picture)
End Sub


Image1.Picture contiene un .bmp de 16x16 píxeles, como es común encontrar en los menús de muchos programas (estilo Word, el PopUp de estados de Windows Live Messenger, etc), pero resulta que los menús SÓLO aceptan bitmaps o iconos de 13x13 píxeles, que no es un formato estándar y que además me frustra una idea que tenía.

Hay alguna forma de solventarlo?

PD: Sí, sé que hay controles como SmartMenuXP que admiten iconos y bitmaps de tamaños estándar y facilitan mucho el trabajo con menús... pero me interesa utilizar menús nativos de VB6.

PD2: Muchas gracias por adelantado!!


« Última modificación: 11 Febrero 2008, 01:46 am por ElectroSPAIDER » En línea

ElectroSPAIDER

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Iconos en un Menu
« Respuesta #1 en: 11 Febrero 2008, 01:44 am »

Recalco que es muy conveniente que mi aplicación no depenga de ningún OCX externo. He visto soluciones como crear menús a partir de formularios o listboxes, pero NINGUNA se asemeja ni por asomo a los menús nativos de VB6. Más que nada mi pregunta es si existe alguna forma de forzar que los menús acepten iconos 16x16 (y me consta que sí se tiene que poder, si no fijaos en eso: )



El menú es clásico pero los iconos son 16x16. ESO es justamente lo que necesito, alguien conoce alguna forma de lograrlo?


En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Iconos en un Menu
« Respuesta #2 en: 11 Febrero 2008, 02:44 am »

Mira, este ejemplo usa iconos estándar como queres, probadlo:

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/375-crear-un-menu-con-un-formulario.htm

¡S4lu2!
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Iconos en un Menu
« Respuesta #3 en: 11 Febrero 2008, 13:05 pm »

Citar
He visto soluciones como crear menús a partir de formularios o listboxes, pero NINGUNA se asemeja ni por asomo a los menús nativos de VB6

Por lo q se ve el no kiere nada de eso (a mi tampoco me gusta...). Si kieres usar el api, yo por lo meno no e tenido mas remedio q ir pasando los iconos a 13x13, pero vamos q tampoco es traumatico hacerlo xD

Lo malo de este metodo es en los menus popup, q no se ven los iconos y tienes q andar haciendo apaños, pero weno, asi es vb  :¬¬
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines