[GELÖST] MaxGUI - Gadgets auf dyn. Fenstergröße anpassen?
Übersicht

CO2ehemals "SirMO"Betreff: [GELÖST] MaxGUI - Gadgets auf dyn. Fenstergröße anpassen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich hätte da mal wieder ein Problemchen ![]() Ich habe ein Fenster, welches das Flag RESIZABLE hat. Darin befinden sich eine Listbox und ein Canvas. Wird nun die Fenstergröße geändert, fange ich dies über das Event EVENT_WINDOWSIZE ab. Nur weiß ich nicht so recht, was ich da rein schreiben soll. Anscheinend gibt es keinen richtigen Befehl um die Gadgetgröße nachträglich zu ändern. Hier ein bisschen Code BlitzMax: [AUSKLAPPEN] Global mainwindow:TGadget = CreateWindow("Super Tolles Programm", 0, 0, 800, 600, Null, WINDOW_TITLEBAR | WINDOW_STATUS | WINDOW_CENTER | WINDOW_MENU | WINDOW_RESIZABLE) |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am Mo, März 11, 2013 23:06, insgesamt einmal bearbeitet
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch, doch. Das macht SetGadgetShape![]() BlitzMax: [AUSKLAPPEN] SetGadgetShape g, GadgetX(g), GadgetY(g), neue_breite, neue_hoehe Ansonsten würde ich aber für diese Aufgabe auch SetGadgetLayout ![]() |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, habe SetGadgetShape genommen... Jetzt habe ich aber ein weiteres Problem (Hat nicht so viel mit dem vorherigen zu tun ![]() Ich habe ein Canvas. In dem Canvas soll die Maus-Position immer am Mauszeiger angezeigt werden. Also habe ich einen Font über LoadImageFont geladen und gesettet. Allerdings ist der Font 1. Viel zu groß und 2. Nie an der richtigen Position, d.h. er ist an der position 0, 0 tatsächlich oben links, bewegt man den Mauszeiger allerdings um sagen wir 5 pixel, so befindet sich die Positionsanzeige schon fast am Rand des Canvas... Woran liegt das? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vermutlich liegt es am Code, so Zeile 130 in etwa. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast hoffentlich nicht versucht, SetGadgetShape auf das Canvas anzuwenden... Das klappt nie so, wie es soll. Einzige Lösung: Canvas löschen, neu erstellen.
ZEVS |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Echt? Ich dachte, das funktioniert, wenn man noch SetVirtualResolution(GadgetWidth(canvas), GadgetHeight(canvas)) einfügt. Und natürlich den Viewport entsprechend setzt. CO2, bitte poste doch kurz den Code, mit dem du die Grafikausgabe machst.
edit Ohhh... Warte! Das oben IST der Code, mit dem du die Grafikausgabe machst, richtig? Du musst selbstverständlich das Canvas-Bemalen in die Event-Struktur hineinnehmen und mit EVENT_GADGETPAINT arbeiten. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habe nun den Code etwas überarbeitet, das Ergebnis bleit allerdings das selbe BlitzMax: [AUSKLAPPEN] Global mainwindow:TGadget = CreateWindow("Super Tolles Programm", 0, 0, 800, 600, Null, WINDOW_TITLEBAR | WINDOW_STATUS | WINDOW_CENTER | WINDOW_MENU | WINDOW_RESIZABLE) |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir ist alles korrekt, wenn ich nach SetGraphics noch diese Zeile einfüge BlitzMax: [AUSKLAPPEN] SetViewport(0,0,GadgetWidth(mw_drawpart),GadgetHeight(mw_drawpart)) Ach ja, das obere SetGraphics, Cls, Flip kannst du jetzt löschen. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Irgendwie funktioniert das bei mir noch nicht wirklich.
Zum veranschaulichen ein paar Bilder: - Abgesehen davon, das der Font viel zu groß ist, "wandert" die schrift viel schneller als die Maus (In den Bildern ist das weiße Kreuz die Maus ![]() BlitzMax: [AUSKLAPPEN] Import maxgui.drivers |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Minimal-Beispiel läuft bei mir gut - der Text ist richtig skaliert und auch an der richtigen Position.
Welche BMax resp. MaxGUI-Version benutzt du? |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Unabhängig davon verstehe ich nicht, wieso du dir diese einfachen Operationen nicht vom Layoutmanager abnehmen lässt:
BlitzMax: [AUSKLAPPEN] SetGadgetLayout mw_selectimage, EDGE_ALIGNED, EDGE_RELATIVE, EDGE_ALIGNED, EDGE_ALIGNED Die drei Zeilen vor der Hauptschleife eingefügt und du brauchst das EVENT_WINDOWSIZE nicht mehr abfangen. Dein Beispiel funktioniert übrigens bei mir - abgesehen davon, dass es partout keine andere Schriftart laden will - auch problemlos (habe noch ein "ShowGadget mainwindow" einfügen müssen). |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, hat sich geklärt: Hatte eine alte MaxGUI-Version... funktioniert jetzt einwandfrei!
Vielen Dank für die Hilfe. |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group