; MouseOverGadget() - example ; USERLIBS --------------------------------------- ; .lib "user32.dll" ; api_GetCursorPos% (lpPoint*) : "GetCursorPos" ; api_ClientToScreen% (hWnd%,lpPoint*) : "ClientToScreen" ; ------------------------------------------------ ; required by both api_ calls Type POINTTYPE Field x%,y% End Type Global point.POINTTYPE=New POINTTYPE ; GUI win=CreateWindow("Mouse/Canvas Test",160,120,340,300,Desktop(),1) can=CreateCanvas(20,30,250,100,win) bt=CreateButton("button",60,150,70,22,win) sl=CreateSlider(60,190,240,24,win) SetBuffer CanvasBuffer(can) ; LOOP Repeat Select WaitEvent(1) Case $803 : Exit ; window [X] Case $103 : If EventData()=27 Exit ; key [ESC] Default Cls Text 10,10,"Mouse over canvas = "+MouseOverGadget(can) Text 10,30,"Mouse over button = "+MouseOverGadget(bt) Text 10,50,"Mouse over slider = "+MouseOverGadget(sl) FlipCanvas can End Select Forever End ; return TRUE if mouse is over a gadget Function MouseOverGadget(gad) point\x=0 : point\y=0 api_ClientToScreen(QueryObject(gad,1),point) Local gadX%=point\x , gadY%=point\y api_GetCursorPos(point) Local mX%=point\x , mY%=point\y If mX>=gadX And mX=gadY And mY