KeyState und Gadgets
Verfasst: 12.05.2005 21:57
Hallo liebe PureBasic Gemeinde,
folgendes Problem stellt sich mir seit eben (leider konnte ich bei einer Suche nichts entsprechendes finden)
Ich programmiere gerade ein Programm das mir rel. grosse Tilemaps anzeigt. Das Ganze ist in nicht in DirectX geschrieben, da es kein Spiel ist, sondern eben nur ein Viewer.
Man kann auf der Karte mit der Maus rumklicken und sich somit weiterbewegen, der aktuelle Klickpunkt wird dann entsprechend zentriert.
Alternativ kann man sich auch mit den Cursortasten weiterbewegen, dies abzufragen ist auch kein Problem gewesen (GetAsyncKeyState_).
Weiters gibt es noch ein paar Gadgets in dem Window.
Ein editierbares ComboboxGadget über das ich auf ein paar neuralgische Punkte in der Karte springen kann.
Mein Problem ist nun folgendes:
Wenn ich in der Combobox editiere / navigiere und dazu die Pfeiltasten verwende, "scrollt" natrülich jetzt ungewollterweise die Karte mit, weil ja weiterhin die Keyevents abgefragt werden.
Wie kann ich es am besten anstellen dies abzustellen, bzw. wie kann ich feststellen weches Gadget gerade aktiv ist?
Vielen Dank im voraus
Amon
folgendes Problem stellt sich mir seit eben (leider konnte ich bei einer Suche nichts entsprechendes finden)
Ich programmiere gerade ein Programm das mir rel. grosse Tilemaps anzeigt. Das Ganze ist in nicht in DirectX geschrieben, da es kein Spiel ist, sondern eben nur ein Viewer.
Man kann auf der Karte mit der Maus rumklicken und sich somit weiterbewegen, der aktuelle Klickpunkt wird dann entsprechend zentriert.
Alternativ kann man sich auch mit den Cursortasten weiterbewegen, dies abzufragen ist auch kein Problem gewesen (GetAsyncKeyState_).
Weiters gibt es noch ein paar Gadgets in dem Window.
Ein editierbares ComboboxGadget über das ich auf ein paar neuralgische Punkte in der Karte springen kann.
Mein Problem ist nun folgendes:
Wenn ich in der Combobox editiere / navigiere und dazu die Pfeiltasten verwende, "scrollt" natrülich jetzt ungewollterweise die Karte mit, weil ja weiterhin die Keyevents abgefragt werden.
Wie kann ich es am besten anstellen dies abzustellen, bzw. wie kann ich feststellen weches Gadget gerade aktiv ist?

Code: Alles auswählen
GadgetID = EventGadgetID()
If GadgetID = #cmbStadt
Debug "GadgetID: #cmbStadt"
AutocompleteComboBox(#cmbStadt)
gefunden = GetGadgetState(#cmbStadt)
If gefunden > -1
startX=stadt_x(gefunden)-tileX/2
startY=stadt_y(gefunden)-tileY/2
redraw = 1
repaint = 1
EndIf
.
.
.
Select Event
Case #WM_KEYDOWN
Debug "Taste drückt: "+Str(getpressedkey())
taste = getpressedkey()
Select taste
Case 37
startX - 1
redraw = 1
Case 38
startY - 1
redraw = 1
Case 39
startX + 1
redraw = 1
Case 40
startY + 1
redraw = 1
EndSelect
Case #WM_KEYUP
Debug "Taste los: "+Str(getpressedkey())
EndSelect
Amon