DetectStatusBar Events
Posted: Fri Sep 08, 2006 10:12 pm
Code updated For 5.20+
Hello,
Could anybody help me in order to detect the StatusBar events?
Here it is an example from fsw, but if we add a TreeGadget, the detection goes wrong.
Thanks in advanced.
QuimV
Hello,
Could anybody help me in order to detect the StatusBar events?
Here it is an example from fsw, but if we add a TreeGadget, the detection goes wrong.
Code: Select all
; Example Of A Statusbar Click Event
; (c) 2003 - By FSW
;
; Tested under WinXP
; do whatever you want with it
;
#Window = 10
#StatusbarFocus = 528
#StatusBar = 1
#Tree = 2
Procedure LoWord (var)
ProcedureReturn var & $FFFF
EndProcedure
Procedure MyWindowCallback(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
wParamLo = LoWord(wParam)
lParamLo = LoWord(lParam)
;513 = $201
If Message = #StatusbarFocus ;#StatusbarFocus ;528 = $210 = #WM_PARENTNOTIFY
If wParamLo = #WM_LBUTTONDOWN And lParamLo < 270 ; 270 is the width of field 1
MessageRequester("Message", "Left Mouse Click In StatusBar Field 1. "+"MousePos: "+Str(lParamLo))
ElseIf wParamLo = 513 And lParamLo > 270 + 2 ; there is a BAR between the 2 fields...
MessageRequester("Message", "Left Mouse Click In StatusBar Field 2. "+"MousePos: "+Str(lParamLo))
ElseIf wParamLo = 516
MessageRequester("Message", "Right Mouse Click In StatusBar. "+"MousePos: "+Str(lParamLo))
EndIf
EndIf
ProcedureReturn Result
EndProcedure
If OpenWindow(#Window,0,0,355,180,"Statusbar Click",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateStatusBar(#StatusBar, WindowID(#Window))
AddStatusBarField(90)
StatusBarText(#StatusBar, 0, "Hello World!")
AddStatusBarField(270)
AddStatusBarField(80)
TreeGadget(#Tree,10,45,100,100,#PB_Tree_AlwaysShowSelection)
SendMessage_(GadgetID(#Tree),$111D,0,14675967)
SetWindowCallback(@MyWindowCallback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
QuimV