Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - ElectroSPAIDER

#1
Programación Visual Basic / Iconos en un Menu
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:

'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!!