Escape GUI - Wurde ein GUI-Element bedient oder nicht?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

PacMani

Betreff: Escape GUI - Wurde ein GUI-Element bedient oder nicht?

BeitragMi, Sep 01, 2010 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallihallo,

hoffe hier hat jemand schon mit der Escape GUI gearbeitet - da ich dazu eine Frage habe und eine Antwort will äh möchte Wink

Wie kann man eigentlich feststellen, ob innerhalb eines GUI-Bereichs geklickt wurde, also ob man irgendwas auf Fenstern bedient hat, oder nicht?
Momentan sieht das bei mir so aus, dass man mit CameraPicking in Blitz3D Blöcke setzen kann, wenn man die linke Maustaste betätigt. Die Blöcke werden auch dann gesetzt, obwohl man auf ein Element der Benutzeroberfläche mit der linken Maustaste geklickt hat.

Vielen Dank im Voraus für alle Antworten.
 

PacMani

BeitragFr, Sep 03, 2010 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe einfach mal den Author gefragt und die Lösung war im Grunde sehr einfach: Man überprüfe, ob sich der Mauszeiger über eines der Fenster befindet.
Das kann dan Beispielsweise so eingebaut werden (habe die eg_main() passend modifiziert), ich habe die Flag in GUIHandled gespeichert (einfach gucken, ob so eine Variable True ist, dann nichts anderes ausführen und wieder auf False setzen):
Code: [AUSKLAPPEN]
;--------------------------------------------------------------------------------------------------------------
   ;--> Maustaste gedrückt?
   ;--------------------------------------------------------------------------------------------------------------
   If MHL Then ;MHL steht bei mir für MouseHitLeft
      
      ;Überprüfen, ob Klick in Bereich eines Fenster ging
      ;Prüfe alle Fenster
      For eg_win = Each eg_window
         ;Fenster sichtbar?
         If eg_win\visible Then
            If RectsOverlap(MX, MY, 1, 1, eg_win\x, eg_win\y, eg_win\w, eg_win\h) Then
               ;Klick ging in Fenster
               GUIHandled = True
               Exit
            End If
         End If
      Next

...


Da dass aber nicht ComboBox-Klicks und Menü-Klicks abfängt, hier eine komplett gefixte eg_system.bb für die, die es einfach haben wollen (auch hier wird die Flag in GUIHandled gespeichert): https://www.blitzforum.de/upload/file.php?id=9443
^-- Update: Auch bei Textboxen kann man jetzt nicht mehr "durchklicken"

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group