Wie kann ich zuverlässig feststellen ob mein Fenster noch aktiv ist ?
Wenn es aktiv ist wie kann ich feststellen ob die Maus im Fenster ist ?
Hier mein Versuch mit WM_MOUSELEAVE
bestimmt gibt es besser Lösungen/Möglichkeiten
Mein WindowProc() Code:
Code: Alles auswählen
Procedure.i WindowProc(hwnd.i,message.i,wparam.l,lparam.l)
With Base
Select message
Case #WM_DESTROY
PostQuitMessage_(#Null)
ProcedureReturn #Null
Case #WM_MOUSEMOVE
\Position\X = GetLoWord(lparam)
\Position\Y = GetHiWord(lparam)
ProcedureReturn #Null
Case #WM_MOUSELEAVE
Debug 123 ;< wird nur einmal beim Start aufgerufen!?
EndSelect
ProcedureReturn DefWindowProc_(hwnd,message,wparam,lparam)
EndWith
EndProcedure
Code: Alles auswählen
Procedure.b InitMouseInput()
Protected Mouse.TRACKMOUSEEVENT
With Base
Mouse\cbSize = SizeOf(TRACKMOUSEEVENT)
Mouse\dwFlags = #TME_LEAVE
Mouse\hwndTrack = \Window\Handle
ProcedureReturn TrackMouseEvent_(@Mouse)
EndWith
EndProcedure