Import maxgui.win32maxguiex Global TestWindow:TGadget = createWindow("TestWindow", 0, 0, 230, 170, Null, WINDOW_CENTER | WINDOW_TITLEBAR | WINDOW_MENU) Global Canvas:TGadget = CreateCanvas(10, 10, 200, 100, TestWindow) Global CanvasX:Int, CanvasY:Int, CanvasOver:Int Global mDown:Int, lastVal:Int SetGraphics CanvasGraphics(Canvas) Function MouseX:Int() Return CanvasX End Function Function MouseY:Int() Return CanvasY End Function Function MouseDown:Int() Return mDown End Function Function MouseHit:Int() ' Quick and dirty. There is probably another Event to handle this If lastVal = 0 And mDown = 1 Then lastVal = 1 Return 1 ElseIf mDown = 0 Then lastVal = 0 End If Return 0 End Function Repeat PollEvent() Select CurrentEvent.id Case EVENT_WINDOWCLOSE End Case EVENT_MOUSEMOVE Select CurrentEvent.source Case Canvas CanvasX = CurrentEvent.X CanvasY = CurrentEvent.Y End Select Case EVENT_MOUSEENTER Select CurrentEvent.source Case Canvas CanvasOver = 1 End Select Case EVENT_MOUSELEAVE Select CurrentEvent.source Case Canvas CanvasOver = 0 End Select Case EVENT_MOUSEDOWN mDown = 1 Case EVENT_MOUSEUP mDown = 0 End Select DrawText "X: " + MouseX() + " Y: " + MouseY(), 0, 0 DrawText "MouseOver: " + CanvasOver, 0, 20 DrawText "MouseDown: " + MouseDown(), 0, 40 DrawText "MouseHit: " + MouseHit(), 0, 60 Flip Cls Forever