Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: k_arlytos en Noviembre 09, 2009, 10:53:43 pm

Título: borrar parte de una ventana
Publicado por: k_arlytos en Noviembre 09, 2009, 10:53:43 pm
mi idea es comer parte de una ventana en vb6.0 o eliminar un trozo se podra?
Título: Re:borrar parte de una ventana
Publicado por: ssccaann43 en Noviembre 10, 2009, 01:21:23 pm
Hablas de mostrar un formularios con diferentes formas?
Título: Re:borrar parte de una ventana
Publicado por: k_arlytos en Noviembre 10, 2009, 02:21:09 pm
nononono simplemente borrar parte de una ventana por ejemplo el medio del formulario tenga un hueco algo asi
Título: Re:borrar parte de una ventana
Publicado por: coco en Noviembre 10, 2009, 02:46:15 pm
nononono simplemente borrar parte de una ventana por ejemplo el medio del formulario tenga un hueco algo asi

podrias usar el api SetLayeredWindowAttributes y setearle un color (por ejemplo rojo) y entonces, pintar esa parte del form con rojo y quedara invisible.

saludos
Título: Re:borrar parte de una ventana
Publicado por: LeandroA en Noviembre 10, 2009, 04:44:44 pm
hola o como dice Coco o sino con Regiones

Código: [Seleccionar]
Option Explicit
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
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 GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Const RGN_XOR = 3


Private Sub Form_Resize()
    Dim hRgn1 As Long, hRgn2 As Long
    Dim Rec As RECT
    Dim lW As Long, lH As Long
   
    GetWindowRect Me.hwnd, Rec
   
    lW = Rec.Right - Rec.Left
    lH = Rec.Bottom - Rec.Top
   
    hRgn1 = CreateRectRgn(0, 0, lW, lH)
   
    hRgn2 = CreateRectRgn(lW / 3, lH / 3, lW / 1.5, lH / 1.5)
   
    Call CombineRgn(hRgn1, hRgn2, hRgn1, RGN_XOR)
   
    SetWindowRgn Me.hwnd, hRgn1, True
   
    DeleteObject hRgn2

End Sub

Saludos.
Título: Re:borrar parte de una ventana
Publicado por: ssccaann43 en Noviembre 10, 2009, 05:32:08 pm
Buenisimo Leandro...