| |
|
|
|
$U thread.pcu =thread.
Déclarer gmx%,gmy%,gmp#,dlg&
style de fenêtre ( 512 | 8 )
cls
dlg&=createdialog(%hwnd,,100,100,300,300)
Faible gmp#,8
whilenot %clé=2
thread.start 1,1
waitinput
thread.stop 1
Wend
dispose gmp#
destroywindow (dlg&)
end
proc thread.do
parameters n&
si n&=1
clear gmp#
external(user32,ClientToScreen,dlg&,gmp#)
gmx%=long(gmp#,0)
gmy%=long(gmp#,4)
external(user32,GetCursorPos,gmp#)
gmx%=long(gmp#,0)-gmx%
gmy%=long(gmp#,4)-gmy%
locate 1,1
imprimer gmx%,gmy%,
endif
endproc
Salve. |
|
|
| |
|
|
|
| Frank Abbing (Nachtrag): une autre Solution ist cet. Es wird entier simple qui Message WM_MOUSEMOVE ausgewertet:
Déclarer rect#,mousex&,mousey&,fenster&
Faible rect#,16
DEF ScreenToClient(2) ! user32,ScreenToClient
DEF GetCursorPos(1) !USER32,GetCursorPos
Cls
fenster&=@Créer(Fenêtre,%hwnd,Dialog,100,100,240,480)
Usermessages $200
Tandis que 1
WaitInput
Cas ((%clé=2) or (%clé=4)):BREAK
Si fenster&=%MWnd
GetCursorPos(rect#)
ScreenToClient(fenster&,rect#)
mousex&=Long(rect#,0)
mousey&=Long(rect#,4)
DrawText 20,20,Str$(Int(mousex&))+, +Str$(Int(mousey&))+
EndIf
Endwhile
Dispose rect#
Fin
|
|
|
| |
|
|