Creating Gui like buttons and Interface...
Posted: Wed May 28, 2003 12:25 pm
Updated for version 5.20
OK a Gui, using a SkinLib i found and imagegadgets.....
Download the demo http://www.balpoint.com/PlayaH.rar 50KB
How i did it?
I open a Window.
to move a window without a titlebar
I use a window callback to detect imagegadget events....
the above is an example of 3 imagegadgets....
the #TitleBar_XX Constants are image gadgets and their states are image handles....
OK a Gui, using a SkinLib i found and imagegadgets.....
Download the demo http://www.balpoint.com/PlayaH.rar 50KB
How i did it?
I open a Window.
to move a window without a titlebar
Code: Select all
Select WindowEvent()
Case #WM_LBUTTONDOWN
ReleaseCapture_()
SendMessage_(hWnd,#WM_NCLBUTTONDOWN, #HTCAPTION,0)
EndSelect
Code: Select all
SetWindowCallback(@WindowCallback())
Procedure.l WindowCallback(WindowID, Message, wParam, lParam)
ReturnValue = #PB_ProcessPureBasicEvents
If Message = #WM_LBUTTONDOWN
If WindowMouseX() > 5 And WindowMouseX() < 21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_SM, TBar_SM_Down)
ElseIf WindowMouseX() > 258 And WindowMouseX() < 258+21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_MM, TBar_MM_Down)
ShowWindow_(WindowID(),#SW_MINIMIZE)
ElseIf WindowMouseX() > 278 And WindowMouseX() < 278+21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_XM, TBar_XM_Down)
End
EndIf
ElseIf Message = #WM_LBUTTONUP
If WindowMouseX() > 5 And WindowMouseX() < 21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_SM, TBar_SM_Over)
ElseIf WindowMouseX() > 258 And WindowMouseX() < 258+21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_MM, TBar_MM_Over)
ElseIf WindowMouseX() > 278 And WindowMouseX() < 278+21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_XM, TBar_XM_Over)
EndIf
ElseIf Message = #WM_MOUSEMOVE
If WindowMouseX() > 5 And WindowMouseX() < 21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_SM, TBar_SM_Over)
ElseIf WindowMouseX() > 258 And WindowMouseX() < 258+21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_MM, TBar_MM_Over)
ElseIf WindowMouseX() > 278 And WindowMouseX() < 278+21 And WindowMouseY() > 5 And WindowMouseY() < 21
SetGadgetState(#TitleBar_XM, TBar_XM_Over)
Else
SetGadgetState(#TitleBar_SM, TBar_SM_Up)
SetGadgetState(#TitleBar_MM, TBar_MM_Up)
SetGadgetState(#TitleBar_XM, TBar_XM_Up)
EndIf
EndIf
ProcedureReturn ReturnValue
EndProcedure
the #TitleBar_XX Constants are image gadgets and their states are image handles....