Replacement Mouse Commands

BlitzPlus Forums/BlitzPlus Programming/Replacement Mouse Commands

JoshK(Posted 2003) [#1]
I put these in CShop, and they worked without a hitch. These mouse commands will work relative to any gadget, so you can use panels for OpenGL viewports instead of canvases that flip and cover the rendering.

Function MouseX(gadget=0)
If Not gadget gadget=Desktop()
hwnd=QueryObject(gadget,1)
buffer=CreateBank (8) 
api_GetCursorPos (buffer)
api_ScreenToClient (hwnd, buffer) 
x=PeekInt(buffer,0) 
FreeBank buffer
Return x
End Function

Function MouseY(gadget=0)
If Not gadget gadget=Desktop()
hwnd=QueryObject(gadget,1)
buffer=CreateBank(8) 
api_GetCursorPos(buffer)
api_ScreenToClient(hwnd, buffer)
y=PeekInt(buffer,4) 
FreeBank buffer
Return y
End Function

Function MoveMouse(x,y,gadget=0)
If Not gadget gadget=Desktop()
hwnd=QueryObject(gadget,1)
buffer=CreateBank(8)
PokeInt buffer,0,x
PokeInt buffer,4,y
api_ClientToScreen(hwnd,buffer)
x=PeekInt(buffer,0)
y=PeekInt(buffer,4)
api_SetCursorPos(x,y)
FreeBank buffer
End Function



Kuron(Posted 2003) [#2]
Thanks Josh, am sure it will come in handy.


Wiebo(Posted 2003) [#3]
THAT is very handy.... Thanks