Window mit Menu und Canvas

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Window mit Menu und Canvas

Beitrag von ProgOldie »

Hallo,

ich habe mir ein Fenster #Win angelegt und dazu ein Canvas-Gadget #Canv, das bei Größenänderung des Windows immer an das Fenster automatisch angepasst wird:

Code: Alles auswählen

Case #PB_Event_SizeWindow
          ResizeGadget(#Canv,0,0,WindowWidth(#Win),WindowHeight(#Win))
          ....
Das alles funktioniert prima. Wenn ich bei der Leinwand den Parameter #PB_Canvas_ClipMouse einstelle, bewegt sich die Maus bei gedrückter Maustaste in der Tat nur innerhalb des Fensters und damit der Leinwand.

Füge ich nun aber dem Fenster ein Menü hinzu, sind Cancas und Window nicht mehr deckungsgleich: Die Leinwand ist nach unten offenbar größer als das Fenster, wie man an der Mausbewegung mit #PB_Canvas_ClipMouse sieht. Nach oben ist die Maus im Canvas nur bis zum unteren Rand der Menüzeile zu bewegen. Am rechten und linken Rand des Fensters ändert sich nichts.

Wie kann ich die Größe des Canvas Gadgets aus windowheight() und Windowwidth() so berechnen, dass es genau ins Fenster passt (und damit die Menüzeile berücksichtigt wird)?


Dank vorab!
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
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: Window mit Menu und Canvas

Beitrag von ts-soft »

Code: Alles auswählen

ResizeGadget(#Canv, 0, 0, WindowWidth(#Win), WindowHeight(#Win) - MenuHeight())
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
Antworten