j'ai essayé de purebasiquer le code suivant qui est d'origine Visual Basic ,mais je n'arrive pas à atteindre ce but .
le code à pour objectif l'emplacement des menus à droite de la fenetre .Vous remerciant à l'avance de votre aide je vous salue bien:
Code : Tout sélectionner
Private Sub Form_Load()
' Tout le code suivant doit être placé dans l'évènement
' Form_Load de la fenêtre concernée.
' Déclaration des variables utilisées
Dim mnuMenuItem As MENUITEMINFO
Dim lgMenu As Long
Dim stBuffer As String * 80
' Récupère le handle du menu
lgMenu = GetMenu(Me.hwnd)
stBuffer = Space$(80)
' Initialisation de la variable
With mnuMenuItem
.cbSize = Len(mnuMenuItem)
.dwTypeData = stBuffer & Chr$(0)
.fType = MF_STRING
.cch = Len(mnuMenuItem.dwTypeData)
.fState = MFS_DEFAULT
.fMask = MIIM_ID Or MIIM_DATA Or MIIM_TYPE Or MIIM_SUBMENU
End With
' Mettre l'indice correspondant au menu à placer à droite à la place 1.
' Les indices de menu commencent à partir de 0.
' Cela ne concerne que les menu de premier niveau.
If GetMenuItemInfo(lgMenu, 1, True, mnuMenuItem) = 0 Then
MsgBox "Erreur GetMenuItemInfo. " & Err.LastDllError, vbExclamation, "Erreur"
Else
mnuMenuItem.fType = mnuMenuItem.fType Or MF_HELP
If SetMenuItemInfo(lgMenu, 1, True, mnuMenuItem) = 0 Then
MsgBox "Erreur SetMenuItemInfo. " & Err.LastDllError, vbExclamation, "Erreur"
End If
End If
' Rafraîchissement du menu
DrawMenuBar (Me.hwnd)
End Sub