Fenster Maximieren Anzeigefehler

Anfängerfragen zum Programmieren mit PureBasic.
LuZiF3R
Beiträge: 18
Registriert: 22.03.2012 16:24

Fenster Maximieren Anzeigefehler

Beitrag von LuZiF3R »

Hallo, bin recht neu mit PureBasic zugange und hab eine kleine Anwendung programmiert.
Nun habe ich eher ein anzeigeproblem, wenn ich das fenster maximiere(siehe Bild).
http://dl.dropbox.com/u/14288371/Pics/anzeigefehler.png
wenn ich dann mit der maus über die einzelnen gadgets drüberfahre, werden sie wieder normal dargestellt. Was kann ich machen, damit ich diesen Anzeigefehler beheben kann.
Bei einer Größenänderung des Fensters lasse ich eine Prozedur laufen, welche über zb.

Code: Alles auswählen

ResizeGadget(410,Breite - 310 - (Breite -920)/2,   73+a, #PB_Ignore, #PB_Ignore)
an die neue/zentrierte Position verrücke.

vielen Dank im Vorraus
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Fenster Maximieren Anzeigefehler

Beitrag von ts-soft »

Herzlich Willkommen!

Ich denke mal, Deine Gadgets überlappen sich, oder Du zeichnest im Fenster.

Ansonsten bitte einen auf das min. reduzierten, ausführbaren Beispielcode posten,
damit man den Fehler nachvollziehen kann.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
LuZiF3R
Beiträge: 18
Registriert: 22.03.2012 16:24

Re: Fenster Maximieren Anzeigefehler

Beitrag von LuZiF3R »

ok ich versuchs mal.

Code: Alles auswählen

      Event = WaitWindowEvent()
      If GetActiveWindow()=#HAUPT
        Select Event
          Case #PB_Event_SizeWindow
            windowresize()
          .........
        Endselect
      EndIf

Code: Alles auswählen

Procedure windowresize()
  Breite = WindowWidth(#HAUPT)
  Hoehe = WindowHeight(#HAUPT)
  a = (Hoehe - 700)/2
  
  ResizeGadget(411,Breite - 310 - (Breite -920)/2,  113+a, #PB_Ignore, #PB_Ignore)
  .............
EndProcedure
in windowresize() lass jedem Gadget eine neue Position zuweisen, die Abmessungen bleiben aber die gleichen
LuZiF3R
Beiträge: 18
Registriert: 22.03.2012 16:24

Re: Fenster Maximieren Anzeigefehler

Beitrag von LuZiF3R »

hier nochmal der komplette code, wo ich das interface zeichne mit der resizeprozedur.
alles andere hab ich mal rausgeschnitten, der fehler tritt trotzdem bei mir auf.

http://dl.dropbox.com/u/14288371/Punktspiel.pb
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Fenster Maximieren Anzeigefehler

Beitrag von ts-soft »

Wenn es nur für Windows ist, dann füge mal:

Code: Alles auswählen

InvalidateRect_(WindowID(#HAUPT), 0, 1)
hinter dem Loop, also am Ende von windowresize(), ein.
(Ansonsten müsste man jetzt die Reihenfolge solange ändern, bis es passt,
da fehlt mir die Lust zu :mrgreen: )

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
LuZiF3R
Beiträge: 18
Registriert: 22.03.2012 16:24

Re: Fenster Maximieren Anzeigefehler

Beitrag von LuZiF3R »

vielen dank, funzt ^^
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Re: Fenster Maximieren Anzeigefehler

Beitrag von Sven »

Könnte man nicht die Gadgets auf ein Container-Gadget setzen und dann nur dieses verschieben, wenn die Größe der einzelnen Gadgets eh gleich bleibt?
Antworten