Bei den neueren Programmen eigentlich garnicht mehr oft
zu sehen, vielleicht auch, weil es nicht mehr so einfach geht, wie unter VB3, ist das
absetzen des "Hilfe" Eintrages der Menüleiste, an den rechten Rand.
Das es aber, wenn gewollt, immer noch geht, soll dieser Tipp zeigen.
1.
Für ein Demoprojekt erstellen Sie drei Menüeinträge, mit jeweils einem Untereintrag
(EXTRAS-MENÜ EDITOR")
Bsp.:
2.
Allgemein/Deklarationen
Option Explicit
Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Private Const MF_STRING = &H0&
Private Const MF_HELP = &H4000&
Private Const MFS_DEFAULT = &H1000&
Private Const MIIM_ID = &H2
Private Const MIIM_SUBMENU = &H4
Private Const MIIM_TYPE = &H10
Private Const MIIM_DATA = &H20
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemInfo Lib "user32" Alias
"GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal B As Boolean,
lpMenuItemInfo As MENUITEMINFO) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias
"SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As
Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
3.
Form_Load
Dim mnuItemInfo As MENUITEMINFO, hMenu As Long
Dim BuffStr As String * 80
hMenu = GetMenu(Me.hwnd)
BuffStr = Space(80)
With mnuItemInfo
.cbSize = Len(mnuItemInfo)
.dwTypeData = BuffStr & Chr(0)
.fType = MF_STRING
.cch = Len(mnuItemInfo.dwTypeData)
.fState = MFS_DEFAULT
.fMask = MIIM_ID Or MIIM_DATA Or MIIM_TYPE Or MIIM_SUBMENU
End With
' 2 = Anzahl der Topeinträge, beginnend bei 0
If GetMenuItemInfo(hMenu, 2, True, mnuItemInfo) = 0 Then
MsgBox "GetMenuItemInfo failed. Error: " & Err.LastDllError, ,
"Error"
Else
mnuItemInfo.fType = mnuItemInfo.fType Or MF_HELP
If SetMenuItemInfo(hMenu, 2, True, mnuItemInfo) = 0 Then
MsgBox "SetMenuItemInfo failed. Error: " & Err.LastDllError, ,
"Error"
End If
End If
'Zeichnen des Menüs
DrawMenuBar (Me.hwnd)
4.
Starten Sie das Projekt und Sie werden sehen, das der Menüeintrag "Hilfe" am
rechten Rand der Form angeordnet wird, auch wenn Sie die Form in der Breite ändern. |