Seite 1 von 1

Event wenn sich die Mouse in der TitleBar befindet ?!

Verfasst: 26.10.2004 04:53
von nco2k
hi folks,

wie finde ich am elegantesten heraus, ob sich die maus gerade in der titelleiste befindet??

c ya,
nco2k

Verfasst: 26.10.2004 16:07
von Falko
Hab mal ein bisschen mit CallbackProc rumgespielt. Vielleicht kannst du das dafür brauchen. Sicher geht das bestimmt noch einfacher.

Code: Alles auswählen

;WindowEvents anzeigen

Procedure WindowCallBack(WindowID, Message, wParam, lParam) 
    Result = #PB_ProcessPureBasicEvents 
    Pos=wParam & $FFFF
    ;Debug Pos ; Teste hiermit, welche Events angezeigt werden
     If WindowID()
        Select Pos
       Case 0
        Debug "Event_InnerWindow"
       Case 1
        Debug "Event_Mouse_LeftClick"  
       Case 2
        Debug "Event_Maus über Title"
       Case 6
        Debug "Event_HScroll"
       Case 7
        Debug "Event_VScroll"
       Case 10
        Debug "Event_LeftSize"
       Case 11
        Debug "Event_RightSize"
       Case 12
        Debug "Event_TopSize"
       Case 15
        Debug "Event_BottonSize"
       Case 20
        Debug "Event_CloseWindow"
      EndSelect
     EndIf

    ProcedureReturn Result 
EndProcedure 

  If OpenWindow(0, 216, 30, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "New window ( 0 )") 
    If CreateGadgetList(WindowID(0)) 
      
      ;- 
      ScrollAreaGadget(0, 20, 20, 540, 260, 1080, 520, 10) 
      CloseGadgetList() 
      
    EndIf 
  EndIf 
 

SetWindowCallback(@WindowCallBack()) 


Repeat   
  
Until WaitWindowEvent() = #PB_EventCloseWindow 

End 
;

Verfasst: 26.10.2004 19:00
von nco2k
danke erstmal!

vielleicht kennt jemand noch eine lösung ohne callback?!

c ya,
nco2k

Verfasst: 26.10.2004 19:22
von rayman1970

Code: Alles auswählen

OpenWindow(0, 216, 30, 600, 300,  #PB_Window_SystemMenu | #PB_Window_ScreenCentered ,"Test")
 
Repeat   
 event = WaitWindowEvent()
 
 If event = 160 ; ---------------
  If WindowMouseY() = -1
   Debug ("Auf Titel")
  EndIf
 EndIf ; -----------------------

Until event =  #PB_EventCloseWindow

End

Gruss Rayman

Verfasst: 26.10.2004 19:56
von nco2k
@rayman1970
die methode ist viel zu unsicher, da auch ein ereignis zurückgegeben wird, wenn sich die maus seitlich am rand des fensters oder ganz unten befindet.

c ya,
nco2k