Seite 1 von 1
Doppelklick
Verfasst: 07.09.2008 22:52
von KatSeiko
Ich möchte in ein Programm einen Doppelklick einbauen (Doppelklick auf eine Grafik verändert sie). Aber wie mache ich das am Besten? Bisher habe ich mir das so weit zusammengeplant: Ich erstelle mir eine Vatiable, in der ich nachher speichere, wann sie zuletzt geklickt wurde und setze sie erst mal auf die Zeit des Programmstarts. (Mittels ElapsedMilliseconds()) Wenn ich nun auf die Grafik klicke, frage ich zuerst ab, wann das letzte Mal geklickt wurde (If LastClick+ClickIntervall >= ElapsedMilliseconds()) und wenn diese Bedingung zutrifft, wird eben die Aktion ausgelöst...
Nun habe ich folgende Frage: Wie komme ich von PureBasic aus an die Zeit ran, die Windows als Timing für einen Doppelklick verwendet? Das kann man einstellen, also muss das irgendwo gespeichert sein...
Verfasst: 07.09.2008 23:22
von gnasen
Mit einem Callback und dem Abfangen der "WM_LBUTTONDBLCLK" Nachricht, sollte das kein Problem sein.
Nur kennt PB diese Konstante nicht und ich kann nicht viel mit "&H203" anfangen... Hexadezimal isses schonmal nicht, aber was dann?
EDIT:
Ich Tröte hab mich vertippt...
#WM_LBUTTONDBLCLK tuts wunderbar
Code: Alles auswählen
If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window")
Repeat
EventID = WaitWindowEvent()
If EventID = #WM_LBUTTONDBLCLK
Debug "DoubleClick"
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
End
Verfasst: 07.09.2008 23:38
von AND51
EventType()? Schon mal gehört?
Dann klappt's auch mit 'nem ImageGadget()...
Verfasst: 08.09.2008 12:25
von Fluid Byte
Meinst du so?
Code: Alles auswählen
CreateImage(0,100,30)
StartDrawing(ImageOutput(0))
DrawText(30,7,"- AN -")
StopDrawing()
CreateImage(1,100,30)
StartDrawing(ImageOutput(1))
DrawText(25,7,"- AUS -")
StopDrawing()
OpenWindow(0,0,0,400,300,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ImageGadget(0,10,10,0,0,ImageID(0))
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget And EventType() = #PB_EventType_LeftDoubleClick
State = 1 - State
SetGadgetState(0,ImageID(State))
EndIf
Until EventID = #PB_Event_CloseWindow
Verfasst: 08.09.2008 23:22
von KatSeiko
Okay, danke!