Code: Alles auswählen
hWnd = OpenWindow (0, 0, 0, 100, 100, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Test")
Repeat
EventID = WaitWindowEvent ()
Select EventID
Case #WM_MOUSEMOVE ; Die Maus hat sich bewegt, Fenster MUSS keinen Focus haben
Debug "Maus bewegt sich über das Fenster"
; If fCapture <> #True
; AltesFenster = GetFocus_ ()
; SetCapture_ (hWnd)
; fCapture = #True
; Else
; If IsMouseOverGadget (hWnd) <> #True
; SetFocus_ (AltesFenster)
; fCapture = #False
; ReleaseCapture_ ()
; EndIf
; EndIf
EndSelect
Until EventID = #PB_Event_CloseWindow
End
Sobald die Maus über das Fenster fährt wird eine Nachricht des Typs #WM_MOUSEMOVE gesendet. Auch wenn das Fenster keinen Focus hat.
In dem Abschnitt kannst du also den Focus auf dein Fenster setzen.
Habe leider schon lange kein PB mehr gemacht, kann man daher auch vllt. anders effizienter lösen, aber es sollte auf jeden Fall funktionieren.
Der auskommentierte Teil wurde grade hier zusammen geklatscht und kann daher Fehler aufweisen. Ich regel dort nur, dass wenn die Maus nicht mehr im Fenster ist, das Alte wieder den Focus bekommt.
Ist evtl. etwas schlampig programmiert, aber man sollte doch grob erkennen, wie es läuft.
MfG pLuSmaN