elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema con una función que hace el efecto aerosol....
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con una función que hace el efecto aerosol....  (Leído 1,959 veces)
juampivicius

Desconectado Desconectado

Mensajes: 36


Todos podemos hacer algo mejor


Ver Perfil
Problema con una función que hace el efecto aerosol....
« en: 17 Febrero 2006, 07:54 am »

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


En línea

Ironhorse

Desconectado Desconectado

Mensajes: 150



Ver Perfil
Re: Problema con una función que hace el efecto aerosol....
« Respuesta #1 en: 17 Febrero 2006, 22:50 pm »

El problema es que tenes las coordenadas del cursor absolutas (sobre la pantalla) y cuando dibujas un punto lo haces en una posicion relativa (sobre el formulario), cambiá esta linea:

Código:
PSet (cursor.x - tmpX + RADIUS - Me.Left / Screen.TwipsPerPixelX, cursor.y - tmpY + RADIUS - Me.Top / Screen.TwipsPerPixelY - 20), COLOR

La constante 20 es el alto de la barra de titulo de la ventana (mas o menos), ya la la propiedad Top no la tiene en cuenta.

Saludos


En línea

Pégense una vuelta por Cracton :)
juampivicius

Desconectado Desconectado

Mensajes: 36


Todos podemos hacer algo mejor


Ver Perfil
Re: Problema con una función que hace el efecto aerosol....
« Respuesta #2 en: 20 Febrero 2006, 07:45 am »

Gracias por la respuesta...funcionó..por curiosidad dentro de un picture  no funciona...eso es común no?..
saludos
En línea

Ironhorse

Desconectado Desconectado

Mensajes: 150



Ver Perfil
Re: Problema con una función que hace el efecto aerosol....
« Respuesta #3 en: 20 Febrero 2006, 19:41 pm »

Seguramente vas a tener que agregarle las coordenadas del picture a las del form.

Saludos
En línea

Pégense una vuelta por Cracton :)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Refrigerando con aerosol?
Hardware
APOKLIPTICO 3 4,234 Último mensaje 8 Abril 2011, 17:15 pm
por Artikbot
que hace la funcion FreeConsole(); ??
Programación C/C++
Danyel_Casvill 1 4,799 Último mensaje 8 Abril 2011, 01:42 am
por Eternal Idol
¿Por favor,que hace esta funcion?
Programación C/C++
GABETORAP 1 1,869 Último mensaje 2 Diciembre 2011, 01:58 am
por Ferno
El for no me hace su funcion? (Solucionado) « 1 2 »
Programación C/C++
nolasco281 13 7,022 Último mensaje 7 Febrero 2014, 02:36 am
por nolasco281
El Efecto Nocebo: Cuando Google te hace desconfiar de los conocimientos de tu...
Noticias
wolfbcn 0 1,328 Último mensaje 7 Mayo 2018, 02:08 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines