Hola a todos...tengo una duda con un código..
/*code
Option Explicit
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const VK_LBUTTON = &H1
Private Type POINTAPI
x As Long
y As Long
End Type
Private Const EXPOSURE As Integer = 25 'puntos aprox. por click
Private Const RADIUS As Integer = 10 'radio
Private Const SPEED As Integer = 40 'pausa por impresion en ms
Private Const COLOR As Long = 0 '&H3156C6
Private draw As Boolean, bStop As Boolean
Private Sub main()
Dim cursor As POINTAPI, i&, dc&, tmpX&, tmpY&
Do
DoEvents
Call Sleep(SPEED)
If draw Then
If GetKeyState(VK_LBUTTON) < 0 Then
Call GetCursorPos(cursor)
For i = 1 To Sqr(EXPOSURE * RADIUS)
'Aerografo
'-cuadrado imaginario
tmpX = Fix(Rnd * RADIUS * 2)
tmpY = Fix(Rnd * RADIUS * 2)
'-circunsferencia imaginaria
If Sqr((RADIUS - tmpX) ^ 2 + (RADIUS - tmpY) ^ 2) <= RADIUS Then
PSet (cursor.x - tmpX + RADIUS, cursor.y - tmpY + RADIUS), COLOR
End If
Next
End If
End If
Loop Until bStop
End Sub
Private Sub Check1_Click()
If Check1.Value Then
draw = True
Else
draw = False
End If
End Sub
Private Sub Form_Load()
Randomize
Show
DoEvents
Call main
End Sub
Private Sub Form_Unload(Cancel As Integer)
bStop = True
End Sub
*/
Bueno el problema es que el efecto del aerosol se consigue y anda bien..pero el problema me lo da el VB con el cursor....porque tengo lo mismo hecho con la api SetpixelVI y en el form me dibuja bien sobre el cursor..pero acá o sobre otro obejto me dibuja más abajo del cursor..y la verdad no se cual es la causa....capaz es un bug..pero no se...si alguien lo puede ejecutar y ver le agraedceria capaz es mi Vb sólo.....
saludos ..gracias