Forums Neueste Beiträge
 

enum Menü, Handle Untermenü

19/08/2008 - 14:12 von Jürgen Schmitt | Report spam
Hallo zusammen,
Benötige alle Handles eines Menüs.
Habe folgendes versucht.

Option Explicit
Dim hMenu As Long 'Menü-handle
Dim hSubMenu As Long 'Handle Toplevel
Dim i, j As Long 'For.. next Toplevel/SubMenü
Dim MenuCount As Long 'Anz. Toplevel
Dim MenuItems As Long 'Anz. SubMenüs/Toplevel
Dim hSubSubMenu As Long 'Handle SubMenü/Toplevel
Dim buffer As String 'MenüCaption
Dim result As Long
Private Sub Form_Load()
hMenu = GetMenu(Me.hwnd)

If hMenu Then
MenuCount = GetMenuItemCount(hMenu) 'Anz. Toplevel
For i = 0 To MenuCount - 1 'sàmtliche Toplevel
hSubMenu = GetSubMenu(hMenu, i) 'Handle SubMenü

buffer = Space(255) 'MenüCaption
result = GetMenuString(hMenu, i, buffer, _
Len(buffer), MF_BYPOSITION)
'Trim the buffer of extra characters.
buffer = Left$(buffer, result)
debug.Print buffer 'OK

'Get the count of menu items in this menu.
MenuItems = GetMenuItemCount(hSubMenu) 'Anz. SubMenüs
debug.Print MenuItems 'OK

For j = 0 To MenuItems - 1 'sàmtliche SubMenüs
hSubSubMenu = GetSubMenu(hSubMenu, j) 'Handle SubMenü
debug.Print hSubSubMenu 'Nicht OK, Wert = 0

buffer = Space(255) 'MenüCaption
result = GetMenuString(hSubMenu, j, buffer, _
Len(buffer), MF_BYPOSITION)
buffer = Left$(buffer, result)
Debug.Print buffer 'alle Strings OK
Next
Next
End If
End Sub

Variable hSubSubMenu bleibt = 0.
Wàre dankbar, wenn mir jemand sagen könnte, was wieder falsch ist.
Vielen Dank.
 

Lesen sie die antworten

#1 Timo Kunze
19/08/2008 - 15:16 | Warnen spam
Wie sieht denn die Menüstruktur aus und wo kommt sie her? Haben die
Menü-Items, für die GetSubMenu 0 liefert, überhaupt Untermenüs?
Davon abgesehen können Untermenüs auch dynamisch erzeugt werden.

Timo
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kràfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Ähnliche fragen