ExamineMouse() killt Mauszeiger!
Verfasst: 29.10.2006 20:53
Hallo,
in folgendem (blöden) Testbeispiel soll die weiße Box immer dann erscheinen, wenn die linke Maustaste gedrückt wird und sich zugleich der Mauszeiger über der schwarzen Fläche befindet. Mit der Funktion Mousebutton(1) klappt das nicht und wenn ich ExamineMouse() einfüge, verschwindet nach dem Starten des Testbeispiels der Mauszeiger komplett vom Bildschirm!!! Der Code:
Als Alternative habe ich versucht:
Geht aber auch nicht, weil dann die weiße Box nur kurz aufblitzt. Wie muß der Code lauten, damit die linke Maustaste erfolgreich eingebunden werden kann? Danke.
Edit: #WM_lbuttondown funktioniert, wenn man bei Event = WaitWindowEvent(20) die 20 aus den Klammern rausläßt, aber mit Mousebutton(1) muß das doch auch irgendwie gehen.
Edit: Ich habe die Fassung PureBasic 4.0
PB42
in folgendem (blöden) Testbeispiel soll die weiße Box immer dann erscheinen, wenn die linke Maustaste gedrückt wird und sich zugleich der Mauszeiger über der schwarzen Fläche befindet. Mit der Funktion Mousebutton(1) klappt das nicht und wenn ich ExamineMouse() einfüge, verschwindet nach dem Starten des Testbeispiels der Mauszeiger komplett vom Bildschirm!!! Der Code:
Code: Alles auswählen
InitSprite()
InitMouse()
OpenWindow(0,0,0,500,550,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget)
OpenWindowedScreen(WindowID(0), 0, 50, 450, 450, 0, 0, 0)
CreateGadgetList(WindowID(0))
Repeat
Event = WaitWindowEvent(20)
EventGadget = EventGadget()
If Mousebutton(1) And WindowMouseX(0) > 0 And WindowMouseY(0) > 0
StartDrawing(ScreenOutput())
Box(50,200,50,200,RGB(220,220,220))
StopDrawing()
FlipBuffers()
Else
StartDrawing(ScreenOutput())
Box(50,200,50,200,RGB(0,0,0))
StopDrawing()
FlipBuffers()
EndIf
Until event = #PB_Event_CloseWindow
Code: Alles auswählen
InitSprite()
InitMouse()
OpenWindow(0,0,0,500,550,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget)
OpenWindowedScreen(WindowID(0), 0, 50, 450, 450, 0, 0, 0)
CreateGadgetList(WindowID(0))
Repeat
Event = WaitWindowEvent(20)
EventGadget = EventGadget()
ExamineMouse()
If event = #WM_lbuttondown And WindowMouseX(0) > 0 And WindowMouseY(0) > 0
StartDrawing(ScreenOutput())
Box(50,200,50,200,RGB(220,220,220))
StopDrawing()
FlipBuffers()
Else
StartDrawing(ScreenOutput())
Box(50,200,50,200,RGB(0,0,0))
StopDrawing()
FlipBuffers()
EndIf
Until event = #PB_Event_CloseWindow
Edit: #WM_lbuttondown funktioniert, wenn man bei Event = WaitWindowEvent(20) die 20 aus den Klammern rausläßt, aber mit Mousebutton(1) muß das doch auch irgendwie gehen.
Edit: Ich habe die Fassung PureBasic 4.0
PB42