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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Lineas "al aire"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lineas "al aire"  (Leído 3,934 veces)
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Lineas "al aire"
« en: 22 Enero 2010, 05:26 am »

Queria saber cual api o que metodo puedo usar para dibujar lineas "en el aire" es decir, fuera de la aplicación bv6, por ejemplo,que me mueva el mouse y se vaya creando una linea sobre el escritorio con todos los lugares por donde ha pasado el puntero desde que el programa esté activo... o simplemente, que me cree una linea rectade un pixel (x,y) que yo le indique a otro pixel indicado...


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Lineas "al aire"
« Respuesta #1 en: 22 Enero 2010, 06:07 am »

Draw on Desktop


En línea

yovaninu


Desconectado Desconectado

Mensajes: 349



Ver Perfil
Re: Lineas "al aire"
« Respuesta #2 en: 22 Enero 2010, 06:33 am »

este ejemplo puede servirte
http://foro.elhacker.net/programacion_vb/codigo_mini_graficador_quiza_sirva_de_algo_a_alguien-t164203.0.html;msg774955#msg774955
Saludos
Edito: En el text pones la distancia en pixeles y clic en el boton
« Última modificación: 22 Enero 2010, 06:36 am por yovaninu » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Lineas "al aire"
« Respuesta #3 en: 22 Enero 2010, 10:47 am »

.
Espero y te sirva esto que te hice:

Pegar en un formulario y agregar un TIMER

Código
  1.  
  2. Option Explicit
  3.  
  4. '   //  GetSystemMetrics
  5. Const SM_CXSCREEN = 0 'X Size of screen
  6. Const SM_CYSCREEN = 1 'Y Size of Screen
  7. '   //  CreatePen
  8. Const PS_DOT = 2
  9. Const PS_SOLID = 0
  10. '   //  Apis
  11. Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
  12. Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As Any) As Long
  13. Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  14. Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  15. Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
  16. Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
  17.  
  18. Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
  19. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  20.  
  21. Private Type RECT
  22.    Left As Long
  23.    Top As Long
  24.    Right As Long
  25.    Bottom As Long
  26. End Type
  27. Private Type POINTAPI
  28.    x                   As Long
  29.    y                   As Long
  30. End Type
  31. Private Type tLineas
  32.    PuntoInicio         As POINTAPI
  33.    PuntoFinal          As POINTAPI
  34. End Type
  35. Dim RegionWindows       As RECT
  36. Dim hdcDestino          As Long
  37.  
  38. Private Sub Form_Load()
  39.    Hide
  40.    '   //  Región/Resolución de Pantalla
  41.    With RegionWindows
  42.        .Bottom = GetSystemMetrics(SM_CYSCREEN)
  43.        .Left = 1
  44.        .Right = GetSystemMetrics(SM_CXSCREEN)
  45.        .Top = 1
  46.    End With
  47.    hdcDestino = GetDC(0)
  48.    Timer1.Interval = 100
  49.    Timer1.Enabled = True
  50. End Sub
  51.  
  52. Private Sub Timer1_Timer()
  53. Dim Linea               As tLineas
  54. Dim hPen                As Long
  55.    '   //  Dibujamos lineas al Azar
  56.        '   //  Calculamos el Punto de Inicio
  57.    Linea.PuntoInicio.x = NumeroAleatorio(RegionWindows.Left, RegionWindows.Right)
  58.    Linea.PuntoInicio.y = NumeroAleatorio(RegionWindows.Top, RegionWindows.Bottom)
  59.        '   //  Calculamos el Punto Final
  60.    Linea.PuntoFinal.x = NumeroAleatorio(RegionWindows.Left, RegionWindows.Right)
  61.    Linea.PuntoFinal.y = NumeroAleatorio(RegionWindows.Top, RegionWindows.Bottom)
  62.    '   //  Dibujamos la Linea
  63.    '   //  Dibujamos los puntos    Inicio y Final en color rojo
  64.        '   //  Color de la Linea
  65.        hPen = CreatePen(PS_SOLID, 1, vbRed)
  66.        SelectObject hdcDestino, hPen
  67.        Ellipse hdcDestino, Linea.PuntoInicio.x - 2, Linea.PuntoInicio.y - 2, Linea.PuntoInicio.x + 2, Linea.PuntoInicio.y + 2
  68.        Ellipse hdcDestino, Linea.PuntoFinal.x - 2, Linea.PuntoFinal.y - 2, Linea.PuntoFinal.x + 2, Linea.PuntoFinal.y + 2
  69.        DeleteObject hPen
  70.        '   //  Color de la Linea
  71.        hPen = CreatePen(PS_SOLID, 1, (RGB(NumeroAleatorio(0, 255), NumeroAleatorio(0, 255), NumeroAleatorio(0, 255))))
  72.        SelectObject hdcDestino, hPen
  73.        '   //  Iniciamos una nueva Linea (Punto de Inicio)
  74.        MoveToEx hdcDestino, Linea.PuntoInicio.x, Linea.PuntoInicio.y, ByVal 0&
  75.        '   //  Finalizamos la Linea (Punto Final)
  76.        LineTo hdcDestino, Linea.PuntoFinal.x, Linea.PuntoFinal.y
  77.        DeleteObject hPen
  78. End Sub
  79. Public Function NumeroAleatorio(MinNum As Long, MaxNum As Long) As Long
  80. Dim Tmp                                 As Long
  81.    If MaxNum < MinNum Then: Tmp = MaxNum: MaxNum = MinNum: MinNum = Tmp
  82.    Randomize: NumeroAleatorio = CLng((MinNum - MaxNum + 1) * Rnd + MaxNum)
  83. End Function
  84.  
  85.  

Temibles Lunas!¡.
.
« Última modificación: 22 Enero 2010, 11:37 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Lineas "al aire"
« Respuesta #4 en: 23 Enero 2010, 01:29 am »

Gracias por la ayuda a todos, el de BlackZero se apega mas a mis necesidades! :P
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Lineas "al aire"
« Respuesta #5 en: 23 Enero 2010, 05:35 am »

@░▒▓BlackZeroҖ▓▒░
esta bueno el ejemplo, te voy a tirar una sugerencia como ya me lo hicieron a mi en mi foro

al pasarle un lapiz a un hdc hay que eliminar el antiguo lapiz, esto es tanto como para un brocha, o un bitmap.

DeleteObject SelectObject(hdc, hPen)

y luego por ulitmo eliminas tu lapiz creado

DeleteObject hPen

En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Lineas "al aire"
« Respuesta #6 en: 23 Enero 2010, 09:21 am »

.
En otras palabras a todo lo que se le haga SelectObject()

oo ya entonces si tenia que hacerlo haci (entonces mi deducción era cierta... pero me cai  >:( ¬¬")

DeleteObject SelectObject(hdc, hPen)

ya lo tenia pero mmm medio vi algo raro y lo deje así (Por ello esta editado quien sabe cuantas veces el post de arriba xP)

SelectObject hdc, hPen
bla bla bla
DeleteObject hPen

Muchas gracias LeandroA.

Temibles Lunas!¡.
.
« Última modificación: 23 Enero 2010, 09:34 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Unzip "al aire"
PHP
dimitrix 8 3,453 Último mensaje 29 Julio 2016, 17:07 pm
por #!drvy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines