Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: FreddyJ en Noviembre 30, 2010, 03:01:44 pm

Título: Escritorio de Windows Vista
Publicado por: FreddyJ en Noviembre 30, 2010, 03:01:44 pm
Quisiera saber si alguien tiene lo que está en el escritorio de Windows Vista.
En este caso esta en la parte de arriba, pero se puede colocar en cualquier parte del escritorio.

Vease en la imagen:
(http://1.bp.blogspot.com/_cPineXQN60g/SISUiSnpqkI/AAAAAAAABsY/NQE01ED8oS8/s400/iconos+escritorio.jpg)

Título: Re:Escritorio de Windows Vista
Publicado por: raul338 en Noviembre 30, 2010, 03:10:41 pm
Eso es dockear un formulario a un borde de la pantalla.

Que es lo que precisas hacer? Dockear un formulario? hacer que se oculte/muestre ? ....
Título: Re:Escritorio de Windows Vista
Publicado por: FreddyJ en Noviembre 30, 2010, 03:39:19 pm
Si, Bueno que tome esa forma cuando se seleccione algo del menú. Que se oculte y muestre, eso no lo hace en vista.

Quiero hacer como un menu fijo, donde estan 5 opciones y al momento de seleccionar una que se agrande la imagen y vuelva a su normalidad.
Título: Re:Escritorio de Windows Vista
Publicado por: raul338 en Noviembre 30, 2010, 03:45:33 pm
con el ucImage y ucImageList (http://www.leandroascierto.com.ar/categoria/Controles%20de%20Usuario/articulo/ucImage%20y%20ucImageList.php) biene uno simulando una ToolBar que hace precisamente eso.

Ahora tu encargate de personalizarlo, dockearlo y que se muestre y oculte solo :)
Título: Re:Escritorio de Windows Vista
Publicado por: FreddyJ en Noviembre 30, 2010, 04:01:39 pm
Ok Leandro. Pero hacer que tome la posición en forma de curva, el ejemplo que me acabas de dar me soluciona mucho. Gracias de nate mano.
Título: Re:Escritorio de Windows Vista
Publicado por: raul338 en Noviembre 30, 2010, 08:34:09 pm
Forma de curva? No entiendo, podrias explicarte mejor? (no tengo la barrita esa yo, no me gusta XD)
Título: Re:Escritorio de Windows Vista
Publicado por: LeandroA en Noviembre 30, 2010, 11:17:30 pm
mirate este link es lo que vos buscas
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=55352&lngWId=1

pero bueno para modificarlo tenes que tener conosimientos sobre las apis que utiliza.

Saludos.
Título: Re:Escritorio de Windows Vista
Publicado por: xmbeat en Diciembre 01, 2010, 01:16:16 am
Mira este ejemplo:
Código: (vb) [Seleccionar]
Private Declare Function ExtraerIconoLib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String,ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long,ByVal nIcons As Long) As Long
Private Declare Function DibujarIconoLib "user32" Alias "DrawIconEx" (ByVal hdc As Long, ByVal xLeft AsLong, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long,ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByValhbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private Declare Function EliminarIcono Lib "user32" Alias "DestroyIcon" (ByVal hIcon As Long) As Long
Private Type MenuItem
    X As Long
    Y As Long
    Width As Long
    Height As Long
End Type
Private DMenu(4) As MenuItem

Private Sub Form_Load()
Me.AutoRedraw = True
Me.ScaleMode = vbPixels
End Sub

Private Sub Form_LostFocus()

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim Distancia   As Long
    Dim Top         As Long
    Dim TamMin      As Long
    Dim TamMax      As Long
    Dim DisActuar   As Long
    Dim CX          As Long
    Dim CY          As Long
    Dim I           As Long
    Dim Espaciado   As Long
    Dim tLeftMin    As Long
    Dim Icono       As Long
    Dim nWidth      As Long
    Espaciado = 10
    Top = 80
    TamMax = 96
    TamMin = 36
    DisActuar = 122
    'tLeftMin = (Me.ScaleWidth - ((TamMin + Espaciado) * (UBound(DMenu)))) / 2
    Cls
    For I = LBound(DMenu) To UBound(DMenu)
        With DMenu(I)
            CY = .Y + .Height / 2
            CX = .X + .Width / 2
            Distancia = Sqr((X - CX) ^ 2 + (Y - CY) ^ 2)
            If Distancia <= DisActuar Then 'si la distancia es menor o igual a lo minimo
                .Width = TamMin + (DisActuar - Distancia) * (TamMax - TamMin) / DisActuar
                .Height = .Width
                .Y = Top - .Height / 2
            Else
               
                .Width = TamMin
                .Height = TamMin
                .Y = Top - .Height / 2
            End If
           
            If I > LBound(DMenu) Then
                .X = DMenu(I - 1).X + DMenu(I - 1).Width + Espaciado
            Else
                .X = tLeftMin - .Width / 2
            End If
         
           
            'Call ExtraerIcono("shell32.dll", I, Icono, ByVal 0&, 1)
            'Call DibujarIcono(Me.hdc, .X, .Y, Icono, .Width, .Height, 0, 0, &H3)
            'Call EliminarIcono(Icono)
        End With
    Next
    nWidth = (DMenu(UBound(DMenu)).X + DMenu(UBound(DMenu)).Width) - DMenu(LBound(DMenu)).X
    tLeftMin = (Me.ScaleWidth - nWidth) / 2
    For I = LBound(DMenu) To UBound(DMenu)
        With DMenu(I)
            If I > LBound(DMenu) Then
                .X = DMenu(I - 1).X + DMenu(I - 1).Width + Espaciado
            Else
                .X = tLeftMin
            End If
            Call ExtraerIcono("shell32.dll", I + 22, Icono, ByVal 0&, 1)
            Call DibujarIcono(Me.hdc, .X, .Y, Icono, .Width, .Height, 0, 0, &H3)
            Call EliminarIcono(Icono)
        End With
       
    Next
    Me.Refresh
End Sub
'on progress
'Private Function IsItemHover(Item As MenuItem, X As Long, Y As Long) As Boolean
'With Item
'    If X >= .X And .X + .Width >= X And .Y <= Y And .Y + .Height >= Y Then
''        IsItemHover = True
 '   End If
'End With
'End Function
Título: Re:Escritorio de Windows Vista
Publicado por: lucius en Diciembre 02, 2010, 01:17:18 am
Si te sirve de algo tambien hay programa que funciona para windows xp
rocketdock.com (http://rocketdock.com)
Título: Re:Escritorio de Windows Vista
Publicado por: ssccaann43 en Diciembre 02, 2010, 10:51:33 am
Yo use ese por referencia y arme uno...! Ese ejemplo de Leandro es el mas acertado, aunque se puede mejorar muchisimo...!
Título: Re:Escritorio de Windows Vista
Publicado por: FreddyJ en Diciembre 15, 2010, 03:02:09 pm
Qué Api exactamente es la que se encarga de dar esa forma, con respecto al ejemplo de Miguel y Leandro.?