Hab ich ein Fenster mit scrollbars, ich möchte auf diesem Fenster rausfinden, wenn die maus losgelassen wurde. normal geht das ja mittels #wm_lbuttonup
befindet sich die maus allerdings über den Scrollbars oder der kleinen ecke rechts unten, krieg ich diese nachricht nicht.
Hier mal ein Beispiel (nein, das sind keine Gescmacksverirrungen, das hab ich so gefärbt, damit ihr die einzelnen Fenster unterscheiden könnt
Code: Alles auswählen
Procedure callback(WindowID,message,wParam,lParam)
result=#PB_ProcessPureBasicEvents
If WindowID=WindowID(2)
If message=#WM_LBUTTONDOWN
Debug "Gedrückt"
EndIf
ElseIf WindowID=WindowID(1)
If message=#WM_LBUTTONUP
Debug "Losgelassen"
EndIf
EndIf
ProcedureReturn result
EndProcedure
CreateImage(1,500,500)
StartDrawing(ImageOutput())
Box(0,0,500,500,RGB(255,0,0))
StopDrawing()
hbrush1=CreateSolidBrush_(RGB(0,255,0))
If OpenWindow(0,200,100,600,600,#PB_Window_SystemMenu,"Mein Titel")
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, hbrush1)
OpenWindow(1,0,0,500,500,#PB_Window_BorderLess|#WM_VSCROLL|#WM_HSCROLL,"")
OpenWindow(2,0,0,500,500,#PB_Window_BorderLess,"")
CreateGadgetList(WindowID(2))
ImageGadget(1,0,0,500,500,UseImage(1))
SetParent_(WindowID(1),WindowID(0))
SetParent_(WindowID(2),WindowID(1))
UseWindow(1)
MoveWindow(50,50)
horz=0
vert=0
horzscroll.SCROLLINFO
vertscroll.SCROLLINFO
horzscroll\fMask=#SIF_ALL
vertscroll\fMask=#SIF_ALL
vertscroll\nPage=5
horzscroll\nPage=5
horzscroll\nMax=200
vertscroll\nMax=200
SetScrollInfo_(WindowID(1),#SB_HORZ,horzscroll,#True)
SetScrollInfo_(WindowID(1),#SB_VERT,vertscroll,#True)
SetScrollPos_(WindowID(1),#SB_VERT,vert,#True)
SetScrollPos_(WindowID(1),#SB_HORZ,horz,#True)
SetWindowCallback(@callback())
Repeat
event=WaitWindowEvent()
Until event=#WM_CLOSE
EndIf
End
Drückt die linke maustaste auf dem Roten Fenster, dann bewegt die maus
in diesen Bereich:
und lasst die Maustaste los.
"Losgelassen" wird nicht debugged
irgendwer ne idee, wie ich das mache?

