Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créateur de Menus fenetre MDI

2 réponses
Avatar
Eric F.
Bonjour,

J'utilise l'utilitaire de créateur de menus pour une fenêtre MDI en VB6.
Apparement, il n'est pas possible d'affecter des icônes, ni aux boutons du
menu principal, ni aux sous-menus ?
Quelqu'un aurait-il une idée, c'est une vieille application VB6 que
j'aimerai moderniser sans devoir passer, pour le moment, à VB2008.

Merci d'avances.
Eric F.

2 réponses

Avatar
Jacques93
Bonjour Eric F.
Eric F. a écrit :
Bonjour,

J'utilise l'utilitaire de créateur de menus pour une fenêtre MDI en VB6.
Apparement, il n'est pas possible d'affecter des icônes, ni aux boutons du
menu principal, ni aux sous-menus ?
Quelqu'un aurait-il une idée, c'est une vieille application VB6 que
j'aimerai moderniser sans devoir passer, pour le moment, à VB2008.




Pour les sous-menus tu peux passer par l'API 'SetMenuItemBitmaps' :

<http://msdn.microsoft.com/en-us/library/ms647998(VS.85).aspx>

Option Explicit

Private Const MF_BYPOSITION = &H400&
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


Private Sub Form_Load()
Dim hMenu As Long
Dim hSubMenu As Long

' Handle du menu
hMenu = GetMenu(Me.hWnd)
If hMenu <> 0 Then
' Premier sous menu
hSubMenu = GetSubMenu(hMenu, 0)
If hSubMenu <> 0 Then
' Assigne les images
SetMenuItemBitmaps hSubMenu, 0, MF_BYPOSITION, _
Picture1.Picture, Picture1.Picture
SetMenuItemBitmaps hSubMenu, 1, MF_BYPOSITION, _
Picture2.Picture, Picture2.Picture
End If
End If
End Sub

Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
If Button = vbRightButton Then
PopupMenu mnuTest
End If

End Sub


--

Cordialement,

Jacques.
Avatar
Eric F.
Merci bcp Jacques pour ton aide.

Cordialement,
Eric F.

"Jacques93" a écrit :

Bonjour Eric F.
Eric F. a écrit :
> Bonjour,
>
> J'utilise l'utilitaire de créateur de menus pour une fenêtre MDI en VB6.
> Apparement, il n'est pas possible d'affecter des icônes, ni aux boutons du
> menu principal, ni aux sous-menus ?
> Quelqu'un aurait-il une idée, c'est une vieille application VB6 que
> j'aimerai moderniser sans devoir passer, pour le moment, à VB2008.
>

Pour les sous-menus tu peux passer par l'API 'SetMenuItemBitmaps' :

<http://msdn.microsoft.com/en-us/library/ms647998(VS.85).aspx>

Option Explicit

Private Const MF_BYPOSITION = &H400&
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


Private Sub Form_Load()
Dim hMenu As Long
Dim hSubMenu As Long

' Handle du menu
hMenu = GetMenu(Me.hWnd)
If hMenu <> 0 Then
' Premier sous menu
hSubMenu = GetSubMenu(hMenu, 0)
If hSubMenu <> 0 Then
' Assigne les images
SetMenuItemBitmaps hSubMenu, 0, MF_BYPOSITION, _
Picture1.Picture, Picture1.Picture
SetMenuItemBitmaps hSubMenu, 1, MF_BYPOSITION, _
Picture2.Picture, Picture2.Picture
End If
End If
End Sub

Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
If Button = vbRightButton Then
PopupMenu mnuTest
End If

End Sub


--

Cordialement,

Jacques.