Autor
|
Tema: Como hacer esto medio transparente? (Leído 7,512 veces)
|
fedefrankk
Desconectado
Mensajes: 23
|
Hola a todos como ven en la figura queda un poco feo ese cuadro blanco. (con el fondo de windows vista ) . quisiera saber si se puede hacer un 50% de tranparencia, en este caso use un picturebox.. pero si se puede hacer con cualquier cosa lo hago.. muchas gracias a todos saludos
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
|
|
|
En línea
|
Adrian Desanti
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Eso vuelve transparente todo el formulario y todo lo que éste contiene y creo que él lo que quiere volver transparente es sólo el picturebox blanco, que yo sepa no hay forma de hacer eso, aunque sería fácil hacerlo con photoshop y ponerlo como imagen de fondo del form y listo.
Saludos.
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Hola spider-net, eso vuelve transparente a todo el form1 pero no al form2 (tal vez pueda adaptarlo de alguna manera) (es solo una idea, si no sirve la descarta)
Saludos
|
|
« Última modificación: 27 Mayo 2009, 16:49 pm por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Hola spider-net, eso vuelve transparente a todo el form1 pero no al form2 (tal vez pueda adaptarlo de alguna manera) (es solo una idea, si no sirve la descarta)
Saludos
Ahhh ya, lo que pasa es que el creo que tiene sólo un form,que lo blanco no es otro form sino un picturebox que contiene el formulario ese. De todas formas igual puede adaptarlo tal y como tú dices Dessa. Un saludo.
|
|
|
En línea
|
|
|
|
fedefrankk
Desconectado
Mensajes: 23
|
Buenas,, muchas gracias por responder, efectivamente estoy buscando solamente que se haga transparente el picture o cualquier cuadrado que se pueda poner... y no el form.. pero esto del form esta buenisimo no lo conocia.. muchas gracias a todos saludos Fede
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Encontre este code que tenia, probalo si sirve , te hace el formulario transparente pero no los controles, si combinas los dos codes (uno en cada formulario en el mismo proyecto) podes lograr el efecto que buscabas. Option Explicit
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Public Sub GlassifyForm(frm As Form) Const RGN_DIFF = 4 Const RGN_OR = 2
Dim outer_rgn As Long Dim inner_rgn As Long Dim wid As Single Dim hgt As Single Dim border_width As Single Dim title_height As Single Dim ctl_left As Single Dim ctl_top As Single Dim ctl_right As Single Dim ctl_bottom As Single Dim control_rgn As Long Dim combined_rgn As Long Dim ctl As Control
If WindowState = vbMinimized Then Exit Sub
' Create the main form region. wid = ScaleX(Width, vbTwips, vbPixels) hgt = ScaleY(Height, vbTwips, vbPixels) outer_rgn = CreateRectRgn(0, 0, wid, hgt)
border_width = (wid - ScaleWidth) / 2 title_height = hgt - border_width - ScaleHeight inner_rgn = CreateRectRgn( _ border_width, _ title_height, _ wid - border_width, _ hgt - border_width)
' Subtract the inner region from the outer. combined_rgn = CreateRectRgn(0, 0, 0, 0) CombineRgn combined_rgn, outer_rgn, _ inner_rgn, RGN_DIFF
' Create the control regions. For Each ctl In Controls If ctl.Container Is frm Then ctl_left = ScaleX(ctl.Left, frm.ScaleMode, vbPixels) _ + border_width ctl_top = ScaleX(ctl.Top, frm.ScaleMode, vbPixels) _ + title_height ctl_right = ScaleX(ctl.Width, frm.ScaleMode, vbPixels) _ + ctl_left ctl_bottom = ScaleX(ctl.Height, frm.ScaleMode, vbPixels) _ + ctl_top control_rgn = CreateRectRgn( _ ctl_left, ctl_top, _ ctl_right, ctl_bottom) CombineRgn combined_rgn, combined_rgn, _ control_rgn, RGN_OR End If Next ctl
' Restrict the window to the region. SetWindowRgn hWnd, combined_rgn, True End Sub
Private Sub Command1_Click() End
End Sub
Private Sub Form_Load() Me.PaletteMode = 1 Me.ScaleMode = 3 Text1 = 1: Text2 = 2: Text3 = 3 Command1.Caption = "Salir" End Sub
Private Sub Form_Resize() GlassifyForm Me End Sub
Saludos
|
|
|
En línea
|
Adrian Desanti
|
|
|
fedefrankk
Desconectado
Mensajes: 23
|
Buenisimo, muchisimas gracias por el codigo ahora lovoy a probar muchas gracias de nuevo saludos
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
¿Hace transparente el formulario pero no los controles? Qué bueno! ese me va a servir a mí también para un programita que estoy haciendo xDD Gracias Dessa!
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Sabia que tenia ese code por ahí (vaya uno a saber de quien es)
PD: No me tiró ningun error pero prueben, saludos
|
|
|
En línea
|
Adrian Desanti
|
|
|
|
|