|
Mostrar Mensajes
|
Páginas: 1 2 3 [4]
|
34
|
Programación / Programación Visual Basic / Re: Form semi-transparente en el q se vean los controles???
|
en: 9 Diciembre 2006, 18:41 pm
|
muy majo tu codigo TUNOVATO, pero deja todo invisible salvo las cosas que pongas.
Saludos Suerte
Saludos compa...!!! Primero: no es mi codigo, (no soy el autor intelectual, solo tome lo que necesitaba (estudie, analice, detalle, y adapte a mis necesidades) como todos los que necesitamos aprender algo algundia... Segundo: Si no me equivoco la duda es como aplicar transparencia a un formulario (Semi transparencia) sin afectar los controles u objetos contenidos en el form, es decir, mas simple un Formulario semi-transparente y controles sin transparecias o semi transparencia. Tercero: El codigo, realiza la invisibilidad de Formulario, es decir deja invisible el fondo, dejando solo los controles u objetos visibles, solo faltaria adaptar a las necesidades del programador, solo falta colocar que el formulario se le aplique la semi transparecia, lo que es obvio, ya esta echo, y solo faltaria curiosidad e interes de hacer las cosas...!!! Cuarto: Me despido ( Estoy tratando de lograr el objetivo de EON ), que es interesante...!!!
|
|
|
35
|
Programación / Programación Visual Basic / Re: Form semi-transparente en el q se vean los controles???
|
en: 8 Diciembre 2006, 23:11 pm
|
Saludos hace tiempo tambien tuve la misma inquietud...!!! y buscando encontre un code que me sirvio de mucho...!!! muchisimo..!!! a decir verdad...!!! creo que esto te puede ayudar en algo a tu code. en un formulario: Nombre: FormTransparente 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 Private Const SC_MOVE = &HF010& Private Const WM_SYSCOMMAND = &H112
Private Sub Form_Resize() TransparentForm Me End Sub
Private Sub MoverFormulario_Click() lP = ((Me.Left \ Screen.TwipsPerPixelX) And &HFFFF&) lP = lP + (Me.Top \ Screen.TwipsPerPixelY \ &H10000) SendMessage Me.hWnd, WM_SYSCOMMAND, SC_MOVE, lP End Sub
Private Sub CerrarFormulario_Click() Form_Unload (1) End Sub
Private Sub Form_Unload(Cancel As Integer) Unload Me End Sub En un modulo: Nombre Modulo.bas 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 TransparentForm(frm As Form)
frm.ScaleMode = vbPixels 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 ControlActual As Control If frm.WindowState = vbMinimized Then Exit Sub wid = frm.ScaleX(frm.Width, vbTwips, vbPixels) hgt = frm.ScaleY(frm.Height, vbTwips, vbPixels) outer_rgn = CreateRectRgn(0, 0, wid, hgt) border_width = (wid - frm.ScaleWidth) / 2 title_height = hgt - border_width - frm.ScaleHeight 'Si quieres que se muestre la barra de titulo 'Entonces habilita la siguiente linea ade codigo 'inner_rgn = CreateRectRgn(border_width, title_height, wid - border_width, hgt - border_width) combined_rgn = CreateRectRgn(0, 0, 0, 0) CombineRgn combined_rgn, outer_rgn, inner_rgn, RGN_DIFF For Each ControlActual In frm.Controls If ControlActual.Container Is frm Then ctl_left = frm.ScaleX(ControlActual.Left, frm.ScaleMode, vbPixels) + border_width ctl_top = frm.ScaleX(ControlActual.Top, frm.ScaleMode, vbPixels) + title_height ctl_right = frm.ScaleX(ControlActual.Width, frm.ScaleMode, vbPixels) + ctl_left ctl_bottom = frm.ScaleX(ControlActual.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 ControlActual SetWindowRgn frm.hWnd, combined_rgn, True End Sub
podes colocar cualquier control y adaptar el code buscando la semi-transparecia (lo que tu necesitas no sera muy dificil hacerla...!!!)
|
|
|
36
|
Programación / Programación Visual Basic / Re: Redimensionar formulario y controles a varios tamaños de pantallas
|
en: 7 Diciembre 2006, 22:10 pm
|
[size20pt] CeLaYa[/size] Gracias Compa...!!!! Encontre otra solucion a mi problema....!!! Solo se debe adaptar el codigo a los controles contenidos dentro del formulario....!!!! en este caso un ListView y Boton 'Ejemplo de redimensionado seguro de formularios ' 'José Alberca 'alberca@usa.net ' 'Lo unico que hay que hacer es copiar el código que viene en este formulario y adaptarlo al que Ud. 'desee. Específicamente debe revisar el evento Initialize del formulario, donde se definen los valores 'minimos del mismo, asi como el procedimiento ResizeMe. Esto obviamente debido a que cada formulario 'debe tener valores mínimos en cuanto a sus dimensiones y ademas que no necesariamente dos o mas 'formularios poseen los mismos objetos, ni están distribuidos de la misma manera.
Option Explicit
'Variables privadas del formulario Private MinHeight As Integer 'Altura minima del formulario (depende del formulario) Private MinWidth As Integer 'Ancho minimo del formulario (depende del formulario) Private CancelResize As Boolean 'Flag que indica si se cancela o no el redimensionado del formulario
'Inicializa los parametros a emplear en el redimensionado Private Sub Form_Initialize() CancelResize = True MinHeight = 360 MinWidth = 480 CancelResize = False End Sub
'Valida si se ejecuta el redimensionado Private Sub Form_Resize() If Not CancelResize Then If Me.WindowState = vbMaximized Then 'Redimensiona los controles Call ResizeMe ElseIf Not Me.WindowState = vbMinimized Then If Width < MinWidth Then CancelResize = True Width = MinWidth End If If Height < MinHeight Then CancelResize = True Height = MinHeight End If 'Redimensiona los controles Call ResizeMe End If End If CancelResize = False End Sub
'Redimensiona los objetos del formulario Private Sub ResizeMe() If Me.WindowState = vbNormal Or Me.WindowState = vbMaximized Then 'Ejemplo de código que podría ir en la rutina de redimensioinado On Error Resume Next ListView1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight - 100 - Command1.Height Command1.Top = ListView1.Height + 50 Command1.Left = Me.ScaleWidth - Command1.Width - 50 End If End Sub
'Descarga el formulario Private Sub Command1_Click() Unload Me End Sub
|
|
|
39
|
Programación / Programación Visual Basic / Re: Como transmitir webcam desde un server a su cliente
|
en: 1 Junio 2006, 17:00 pm
|
Saludos muy buen idea tenia tiempo buscando esta informacion en referencia a controlar la webcam remotamente, pero tengo varias incognitas, y es la siguiente...!!! ¿Como saber que la pc a controlar tiene webcam....!!! ? ¿En caso de que la pc la tenga, como saber si esta en pleno uso..!!! ? ¿Si esta en uso como se puede utilizar en nuestro proceso para transmitirla a nuestro cliente sin tener que matar el primer proceso (perteneciente a la pc en cuestion), es decir, si ya esta utilizada, ¿como la podemos utilizar...!!!, si ya esta siendo utilizada...? Creo que me di a entender...!!! Si no es asi me disculpan por ser innorante...!!!
|
|
|
|
|
|
|