>-- Si te interesa la programacion, software, sistemas operativos. Seguime. ¡No lo dudes!
Continuamos con mas del post.
Introducción
Encontré una manera de poner menús con imágenes mapa de bits (*.bmp) y cree una función mas especifica en poner imágenes usando algunas funciones del sistema, aproveche bien este código.
Contenido 1
Como puedo explicar, los menús y submenús tienen una ID, a través de las ID se ubica de tal manera que encuentra una posición de poner la imagen en dimensiones de 13x13, las ID comienzan desde 0 En adelante, y es según el ordenen que hayan sido puestas.
La función trabaja con funciones que piden el hWnd, o sea, la clase, formulario u objeto qe controla los menús. Además piden las ID de los menús y submenús a cuales le quieres poner las imágenes.
El código:
Option Explicit
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 GetMenuItemID Lib "user32" ( _
ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" ( _
ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long, ByVal wIDNewItem As Long, _
ByVal lpString As String) 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
Public Sub AddBitmapsMenu(ByVal Form As Form, _
ByVal MenuID As Integer, _
ByVal SubMenu As Integer, _
ByVal BitmapUnchecked As Long, _
Optional ByVal BitmapChecked As Long)
On Error Resume Next
Dim hMenu, hSubMenu, hMenuID, x
hMenu = GetMenu(Form.hWnd)
hSubMenu = GetSubMenu(hMenu, MenuID)
hMenuID = GetMenuItemID(hSubMenu, SubMenu)
x = SetMenuItemBitmaps(hMenu, hMenuID, 0, BitmapUnchecked, BitmapChecked)
End Sub

