| |
|
|
| Cursorposition Getcursorpos Maus Mausstrecke Messen Setcursorpos Strecke Weg
iF (10.07.12)
@Funkheld: Hab Dir hier mal was die Strecke misst... sowas? DownloadKompilierenMarkierenSeparieren {$cleq}
Windowstyle 31
Windowtitle "Cursorposition ermitteln"
Window 500,500
setcursorpos((winRight-winLeft)\2+winLeft,(winBottom-winTop)\2+winTop)
var modified&=0
var strecke&=0
var my2MousePositions&=globalAlloc(gPTR,16)
getCursorPos(my2MousePositions&)
rtlMoveMemory(my2MousePositions&+8,my2MousePositions&,8)
while 1
waitinput 10
getCursorPos(my2MousePositions&)
settext hWnd,"X:"+str$(long(my2MousePositions&,0))+" Y:"+str$(long(my2MousePositions&,4))+" Strecke:"+str$(strecke&)
add strecke&,abs(long(my2MousePositions&,0)-long(my2MousePositions&,8))+abs(long(my2MousePositions&,4)-long(my2MousePositions&,12))
if long(my2MousePositions&,0) > winRight
long my2MousePositions&,0=winLeft
inc modified&
endif
if long(my2MousePositions&,0) < winLeft
long my2MousePositions&,0=winRight
inc modified&
endif
if long(my2MousePositions&,4) < winTop
long my2MousePositions&,4=winBottom
inc modified&
endif
if long(my2MousePositions&,4) > winBottom
long my2MousePositions&,4=winTop
inc modified&
endif
if modified&
modified&=0
setCursorPos(long(my2MousePositions&,0),long(my2MousePositions&,4))
endif
rtlMoveMemory(my2MousePositions&+8,my2MousePositions&,8)
wend
globalFree(my2MousePositions&)
end
Wenn Du die add strecke Zeile dahin änderst: KompilierenMarkierenSeparierenadd strecke&,(long(my2MousePositions&,0)-long(my2MousePositions&,8))+(long(my2MousePositions&,4)-long(my2MousePositions&,12))
(also ohne abs), dann wird die rückwärtsgefahrene Strecke auch von der Streckenlänge subtrahiert statt zur Streckenlänge addiert. PS: Bei XPSE brauchst die ganzen Standard-APIs nicht deklarieren und es ist sogar sinnvoller es dann auch nicht zu tun da die Aufrufe in deutlich schnellere Calls umgewandelt werden. |
|
|
| |
|
|