mdigadgets - scrolleiste immer einblenden?

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

mdigadgets - scrolleiste immer einblenden?

Beitrag von smateja »

Hallo zusammen, weiß jemand evtl. ob und wenn ja wie es machbar ist - die vertikale Scrolleiste immer einblenden zu lassen, auch wenn das mdi noch leer ist?

Habe diesbezüglich leider nichts im Forum großartig finden können, aber evtl. hat ja jemand einen kleinen Tipp für mich.

Merci schon mal im Voraus.
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Stellt sich die Frage warum? Die Scrollbars erscheinen nur wenn ein MDI Child Fenster die Maße des Clients überschreitet. Alles andere macht auch keinen Sinn. Normalerweise kann man die Scrollbars von Fenstern sichtbar machen indem man einfach eine 'Range' setzt, also Minimum / Maximum. Das Problem ist dass das MDI Client Fenster bei diversen Windows Messages überprüft ob Scrollbars angezeigt werden müssen und die 'Range' entsprechend wieder auf Null setzt wenn dies nicht der Fall ist.

Mir fällt jetzt keine andere Lösung ein aber wie gesagt erachte ich es sowieso als sinnfrei.
Windows 10 Pro, 64-Bit / Outtakes | Derek
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag von smateja »

Narf - also warum ich das machen mag:

ich bau mir gerade einen loginscreen der via sqllib in einem mdi gadget useraccounts listet. auf der linken seite ist das mdi. jeder user bekommt quasi hier ein neues fenster zugeteilt mit daten wie letzter login userpic usw.

es ist quasi eine schönheitsmanko wenn auf einmal die leiste auftaucht. daher will ich sie von haus aus einblenden auch wenn nur ein user gelistet wird.

finde leider immer noch nichts passendes dazu.

[/img]
PB 4.6 / 32 Bit / 64 Bit
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Nachtrag:

Beitrag von smateja »

Habe nun im Forum mal folgendes gefunden:

ShowScrollBar_(GadgetID(#mdigadget),#SB_VERT,#True)

hat aber leider keine Auswirkungen auf die Scrolleiste im MDI.

Evtl. hat ja sonst noch jemand eine IDee?!
PB 4.6 / 32 Bit / 64 Bit
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

und wenn du die Leiste von vorne herein im Layout mit einplanst,
zum Beispiel dem Platz, wo sie erscheinen wird, eine andere Farbe gibst?

sorry, dass ich dir sonst nicht helfen kann, aber mir ist keine einzige GUI bekannt,
bei der ein Scrollbar da ist bevor er benötigt wird.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RE:

Beitrag von smateja »

wäre ne idee - anbei - websiten machen das manchmal auch so um die platz vorzureservieren :)

aber easy - ich versuch das mal nun dur vorbelegung zu definieren. Merci aber für den Tipp gelle.
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

ShowScrollBar_() bleibt wirkungslos aus zwei Gründen:

1.) die Scrollbars des MDI Gadgets sind keine eigenen extra Controls sondern erzwungen mittels des #WS_*SCROLL Stils. Solche Scrollbars lassen sich nur dann anzeigen wenn vorher überhaupt ein Minimum/Maxium festgelegt wurde.

2.) wie ich oben geschrieben habe überprüft der MDI Client mehrfach ob Scrollbars angezeigt werden müssen. Ist kein Minimum/Maxium festgelegt wird die Scrollbar automatisch unsichtbar und ShowScrollBar_() funktioniert nicht.

Die einzige Möglichkeit die Ich sehe wäre per subclassing. Dazu müsstest du aber genau wissen wie und wo die 'Range' berechnet wird.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

Kaeru Gaman hat geschrieben:...
sorry, dass ich dir sonst nicht helfen kann, aber mir ist keine einzige GUI bekannt,
bei der ein Scrollbar da ist bevor er benötigt wird.
Notepad? :D

Ich finde es garnicht so schlecht wenn Scrollbars immer sichtbar sind, dann sieht der Anwender auf einen Blick das es sich um was scrollbares handelt, auch wenn momentan noch nicht genügend Inhalt vorhanden ist um scrollen zu müssen.
Aber das kommt sehr auf die Anwendung an, ob und wann welche Version besser aussieht.

Du könntest das vielleicht noch "per Hand" lösen:
Mit #PB_MDI_NoScrollBars schaltest du die Scrollbars ganz aus, dann kannst du selber welche anlegen und scrollst einfach das ganze Gadget übers Fenster. Allerdings musst du dich dann selber um die Größe usw. kümmern.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Rokur hat geschrieben:Notepad? :D
Das ist aber nicht gewollt sondern liegt am Sizing Grip (die kleine ecke mit der man das Fenster größer und kleiner zieht).
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten