Code: Alles auswählen
If WindowMouseX() > 0 And WindowMouseX() < 50 And WindowMouseY() > 0 And WindowMouseY() < 200
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(408,0,50,200)
StopDrawing()
EndIf
Code: Alles auswählen
If WindowMouseX() > 0 And WindowMouseX() < 50 And WindowMouseY() > 0 And WindowMouseY() < 200
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(408,0,50,200)
StopDrawing()
EndIf
stimmt nicht, denn folgende Code-Erweiterung funktioniert:sobald du innerhalb eines screens zeichnest, sind die buttons e ungueltig
Code: Alles auswählen
InitSprite()
InitMouse()
OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget,"")
OpenWindowedScreen(WindowID(0), 0, 0, 700, 200, 0, 0, 0)
CreateGadgetList(WindowID(0))
ButtonGadget(1,20,300,100,30,"Test")
TextGadget(2,150,300,100,30,"",#PB_Text_Center|#PB_Text_Border)
Repeat
eventID = WaitWindowEvent()
EventType()
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(0,0,50,200)
Box(51,0,50,200)
Box(102,0,50,200)
Box(153,0,50,200)
Box(204,0,50,200)
Box(255,0,50,200)
Box(306,0,50,200)
Box(357,0,50,200)
FrontColor(0,0,0)
Box(32,0,36,130)
Box(83,0,35,130)
Box(134,0,35,130)
Box(235,0,35,130)
Box(286,0,35,130)
StopDrawing()
FlipBuffers()
If WindowMouseX() > 0 And WindowMouseX() < 50 And WindowMouseY() > 0 And WindowMouseY() < 200
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(408,0,50,200)
StopDrawing()
EndIf
GadgetID = EventGadgetID()
Select GadgetID
Case 1
SetGadgetText(2,"Hallo!")
EndSelect
Until eventID = #PB_EventCloseWindow
Das ist ja genau das, was mich auch gewundert hat, daß PB so schnell schlapp machen soll, aber kannst Du mir den Gefallen tun und mal in die Schatztruhe reingreifen? Mich würde das echt brennend interessieren. Danke.Allgemein wuesste ich nicht, warum du in diesem fall auf winapi zurueckgreifen musst, PB hat genug power, um mit sowas mit den befehlen aus eigener schatztruhe fertig zu werden.
Code: Alles auswählen
InitSprite()
InitMouse()
OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget,"")
OpenWindowedScreen(WindowID(0), 0, 0, 700, 200, 0, 0, 0)
CreateGadgetList(WindowID(0))
ButtonGadget(1,20,300,100,30,"Test")
TextGadget(2,150,300,100,30,"",#PB_Text_Center|#PB_Text_Border)
Repeat
eventID = WaitWindowEvent()
Select EventID
Case #WM_LBUTTONDOWN ; wert = 513
;Konstanten fuer die anderen werte kenne ich auf die schnelle leider nicht
Debug "Linke Maustaste gedrückt"
Case 514
Debug "Linke Maustaste losgelassen"
Case 516
Debug "Rechte Maustaste gedrückt"
Case 517
Debug "Rechte Maustaste losgelassen"
Case 519
Debug "Mittlere Maustaste gedrueckt"
Case 520
Debug "Mittlere Maustaste losgelassen"
EndSelect
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(0,0,50,200)
Box(51,0,50,200)
Box(102,0,50,200)
Box(153,0,50,200)
Box(204,0,50,200)
Box(255,0,50,200)
Box(306,0,50,200)
Box(357,0,50,200)
FrontColor(0,0,0)
Box(32,0,36,130)
Box(83,0,35,130)
Box(134,0,35,130)
Box(235,0,35,130)
Box(286,0,35,130)
StopDrawing()
FlipBuffers()
If WindowMouseX() > 0 And WindowMouseX() < 50 And WindowMouseY() > 0 And WindowMouseY() < 200
StartDrawing(ScreenOutput())
FrontColor(255,255,255)
Box(408,0,50,200)
StopDrawing()
Else
StartDrawing(ScreenOutput())
FrontColor(0,0,0)
Box(408,0,50,200)
StopDrawing()
EndIf
GadgetID = EventGadgetID()
If EventID = #PB_Event_Gadget
Select GadgetID
Case 1
If GetGadgetText(2) = "Hallo!"
SetGadgetText(2,"")
Else
SetGadgetText(2,"Hallo!")
EndIf
EndSelect
EndIf
Until eventID = #PB_EventCloseWindow