Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Dark Baxter en 8 Abril 2015, 06:45 am



Título: Ayuda formulario
Publicado por: Dark Baxter en 8 Abril 2015, 06:45 am
Buenas gente

Les queria preguntar una cosita, estoy seguro que me podran ayudar...

Estoy armando algo simple en vb6.0 y me gustaria poner un formulario sin el fondo, osea que si pongo un boton se vea "en el aire" y detras se muestre lo que hay de fondo...ya sea el escritorio o lo que tenga detras del form...

se entendio?  ::)

saludos y gracias.


Título: Re: Ayuda formulario
Publicado por: Br1ant en 9 Abril 2015, 08:27 am
http://www.vbforums.com/showthread.php?413218-VB6-Glass-Form

Un efecto Glass (por cierto, muy bueno) para lograr lo que pides.

Saludos.


Título: Re: Ayuda formulario
Publicado por: okik en 9 Abril 2015, 14:31 pm
Hola,
Este sencillo código sirve para transparentar totalmente un color determiando ya sea del formulario o de un objeto cualquiera que esté dentro del formulario. He establecido la propiedad Backcolor del formulario  a vbRed y por lo tanto toda la parte interna del formulario se verá transparente al 100%. He utilizado el Rojo pero puedes usar cualquier color.


Código
  1.    Option Explicit
  2.  
  3. Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  4. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  5. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  6.  
  7. Private Const GWL_EXSTYLE = (-20)
  8. Private Const WS_EX_LAYERED = &H80000
  9. Public Function TransparentarColor(ByVal hwnd As Long, Color As Long) As Long
  10. On Error Resume Next
  11.       SetWindowLong hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
  12.       SetLayeredWindowAttributes hwnd, Color, 0, &H1
  13. End Function
  14.  
  15. Private Sub Form_Load()
  16. Me.BackColor = vbRed
  17. Call TransparentarColor(Me.hwnd, vbRed)
  18. End Sub
  19.  
  20.  







Añado este código de más como muestra de la utilidad que tiene el código para crear formularios personalizados.


(https://s25.postimg.org/f53zwfkzz/Form_Personalized1.jpg)


(https://s25.postimg.org/qvhxdtdsf/Form_Personalized2.jpg)


Código
  1.    Option Explicit
  2. 'Mover formulario sin barra
  3. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  4. Private Declare Function ReleaseCapture Lib "user32" () As Long
  5. Const WM_NCLBUTTONDOWN = &HA1
  6. Const HTCAPTION = 2
  7.  
  8.  
  9. Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  10. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  11. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  12.  
  13. Private Const GWL_EXSTYLE = (-20)
  14. Private Const WS_EX_LAYERED = &H80000
  15. Public Function TransparentarColor(ByVal hwnd As Long, Color As Long) As Long
  16. On Error Resume Next
  17.       SetWindowLong hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
  18.       SetLayeredWindowAttributes hwnd, Color, 0, &H1
  19. End Function
  20.  
  21. Private Sub Form_Load()
  22. Me.BackColor = vbRed
  23.  
  24. Call TransparentarColor(Me.hwnd, vbRed)
  25. End Sub
  26.  
  27.  
  28. Private Sub Command1_Click()
  29. Unload Me
  30. End Sub
  31. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  32. Dim Z As Long
  33. If Button = 1 Then
  34. ReleaseCapture
  35. Z = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
  36. End If
  37. End Sub

Y el proyecto lo puedes descargar aquí.
Form_Personalized.zip
 (https://mega.nz/#!uEt3QAab!pSaFOmYGDVDKgX1A2RyXWagxRu5FIVybU2aSLMlR1Q4)


Título: Re: Ayuda formulario
Publicado por: Dark Baxter en 11 Abril 2015, 23:49 pm
Muchas gracias okik por tomarte el tiempo y dejarme esos codes!

Ya logre solucionarlo gracias a ustedes..

Saludos y gracias!.