Seite 2 von 2

Re: Vertikale Trenner in horizontalem Menü

Verfasst: 30.07.2013 17:58
von RSBasic
@Bisonte
:D
Es ist ja auch kein Menü. Ich sagte ja auch "ToolBar" und bei einer ToolBar gibt es ja auch nichts zum Auf- und Zuklappen. ;)
Aber ja, du hast recht. Sorry. Ich hab das bisher noch nie gesehen. Ich habe mal herumprobiert und habe eine erweiterte Eigenschaft gefunden: TCS_EX_FLATSEPARATORS
Wieder was dazu gelernt und ein neuer Beispielcode für meine WinAPI Library.

Beispielcode:

Code: Alles auswählen

EnableExplicit

Define EventID

#TCS_EX_FLATSEPARATORS = $1

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If PanelGadget(1, 10, 10, WindowWidth(0)-20, WindowHeight(0)-20)
    AddGadgetItem(1, -1, "Item 1", 0, 0)
    ButtonGadget(2, 100, 100, 100, 20, "Button 1", 0)
    AddGadgetItem(1, -1, "Item 2", 0, 0)
    ButtonGadget(3, 100, 50, 100, 20, "Button 2", 0)
    AddGadgetItem(1, -1, "Item 3", 0, 0)
    ButtonGadget(4, 50, 100, 100, 20, "Button 3", 0)
    
    CloseGadgetList()
  EndIf
  
  SetWindowLongPtr_(GadgetID(1), #GWL_STYLE, GetWindowLongPtr_(GadgetID(1), #GWL_STYLE) | #TCS_BUTTONS | #TCS_FLATBUTTONS )
  SendMessage_(GadgetID(1), #TCM_SETEXTENDEDSTYLE, #Null, #TCS_EX_FLATSEPARATORS)
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Das ist das, was man im Screenshot sehen kann.

Re: Vertikale Trenner in horizontalem Menü

Verfasst: 30.07.2013 22:24
von Daffy0815
@andi256

Da hast Du bei deinem "Forum blättern" aber nicht richtig aufgepasst!

Es geht mir keinesfalls darum ein Menüsystem mit Gewalt kaputt zu kriegen.
Auch eine eigene GUI soll niemandem aufgezwungen werden.

Das genaue Gegenteil ist der Fall!

Es geht darum ein Programm zu erstellen bei dem ALLE Einstellungen bezüglich der Optik AUSSCHLIESSLICH in mit den Standardeinstellungen unter "Anzeige" in der Systemsteuerung gemacht werden.
Wenn z. B. die Schriftgröße der Menüs von 8 Punkt auf 20 Punkt geändert werden dann sollen sich alle Menüelemente Fentergrößen, Verteilung der restlichen Elemente automatisch diesen veränderten Gegebenheiten anpassen.
Ich hasse nämlich diese "üblichen" Windows-Programme bei denen sich z. B. bei 640X480er Auflösung die OK/Abbruch-Buttons scho unereichbar außerhalb des Bildschirms befinden.
Ich zweifle daran das die "ziG" Programmen die Du hier anführst dies so leisten lasse mich aber gerne eines besseren belehren.

Gruß

Daffy

Re: Vertikale Trenner in horizontalem Menü

Verfasst: 30.07.2013 22:42
von Daffy0815
@RSBasic

Um zu verdeutlichen was ich meine möchte ich die gewünschten Bilder natürlich nicht schuldig bleiben!

Hier das Bild mit Schriftgrad 8 Punkt für Symbole.

Bild

Nun mit 14 Punkt (Unterlängen sind abgeschnitten).

Bild

und mit 20 Punkt (völlig vermurkst)

Bild

Gruß

Daffy

PS. mir ist schon klar warum das so ist!

Re: Vertikale Trenner in horizontalem Menü

Verfasst: 30.07.2013 22:52
von RSBasic
Dann musst du einfach die folgende Zeile anpassen, jenachdem wie hoch die Schrift ist:

Code: Alles auswählen

ImageList_SetIconSize_(TBID, 0, 16)
Beispielsweise für 20 Punkt:

Code: Alles auswählen

ImageList_SetIconSize_(TBID, 0, 48)
Den bestmöglichen Wert für jede Schriftgröße musst du aber selber herausfinden.

Re: Vertikale Trenner in horizontalem Menü

Verfasst: 30.07.2013 22:58
von Daffy0815
@RSBasic

Das mit dem "PanelGadget" wurde absolut richtig interpretiert!

Im Grunde handelt es sich um ein aus dem Hauptfenster aufgerufenes extra Fenster namens "Programmeinstellungen".

Hier werden alle programmspezifischen Einstellungen vorgenommen.
Bei einem Klick auf "Schnittstelle" werden die derzeit zur Verfügung stehenden Schnittstellen und deren mögliche Übertragungsparameter
zur Auswahl gestellt.
Bei allen "Panels" befinden sich rechts immer zwei Buutons (Schließen / Übernehmen) die dann zur Übernahme aller Parameter aus allen "Panels" führen oder auch nicht)

Und das Ganze auf jeden nur erdenklichen Bildschirm in der Form das man es immer optimal lesbar vor sich hat.

Gruß

Daffy

Re: Vertikale Trenner in horizontalem Menü

Verfasst: 30.07.2013 23:01
von RSBasic
@Daffy0815
Ja das weiß ich inzwischen auch. Da ich diese Anwendung nicht besitze, konnte ich nur raten. Ich habe oben bereits ein Beispielcode geschrieben und gepostet, falls du es lieber mit PanelGadget machen möchtest.