Seite 1 von 1

Letztes Menu auf die rechte Seite bringen.

Verfasst: 26.08.2006 19:29
von Gezuppel
Moin moin,
war bestimmt schonmal da, meine habe ähnliches von Falko gesehen.
Da ich beim Suchen aber nichts gefunden habe hier nochmal:

Code: Alles auswählen

; ---------------------------------------------------------------------  
; Funktion : RSetLastMenu - V1.0 vom 26.08.2006
; ---------------------------------------------------------------------  
; Setzt das letze WindowsMenu an die rechte Seite des Fensters
; ---------------------------------------------------------------------  
; MenuNR.l PureBasic MenuID(nicht Handle)
; Purebasic Version 4.0
; ---------------------------------------------------------------------  

Procedure RSetLastMenu(MenuNR.l)
  ; MenuHandle feststellen.
  MenuHandle.l = MenuID(MenuNr.l)
  
  ; Letzte MenuNr(TitelID) ermitteln. (#False = kein Menue)
  ; Ermittelte Anzahl -1 weil erste Menuenummer = 0 ist.
  LastMenuNr.l = GetMenuItemCount_(MenuHandle.l) -1
  
  If LastMenuNr.l 
    ; MENUITEMINFO Struktur erstellen.
    MII.MENUITEMINFO
    MII\cbSize = SizeOf(MENUITEMINFO)
    
    ; Daten aus dem Letzen Menu in unsere MENUITEMINFO Struktur schreiben.
    GetMenuItemInfo_(MenuHandle.l,LastMenuNr.l,#True,@MII.MENUITEMINFO)
    
    ; Werte fuer MenueAusrichtung auf rechts setzen.
    MII\fMask = #MIIM_FTYPE
    MII\fType = #MFT_RIGHTJUSTIFY
    
    ; Geaenderte MENUITEMINFO Struktur zurueckschreiben.
    SetMenuItemInfo_(MenuHandle.l,LastMenuNr.l,#True,@MII.MENUITEMINFO)
    
    ; Menue neu Zeichnen.    
    DrawMenuBar_(MenuHandle.l)
    
    ; Wahr zurueckgeben wenn alles geklappt hat.
    ProcedureReturn #True
    
  Else
    
    ; #False zurueckgeben, wenn das letze Menue nicht ermittelt werden konnte.
    ; (Vermutlich noch keins angelegt).
    ProcedureReturn #False 
    
  EndIf
EndProcedure