Resumen Asociar WINDOWLIST a Combobox

No recuerdo exactamente tu pregunta pero creo que esto te servirá :

Tenemos un formulario mdi llamado MDIForm1 que tiene un combo llamado Combo1 (estilo 2, dropdownlist) en el que deseas que aparezca el caption de los mdichild que estén abiertos.

En el mdi añadimos los siguientes procedimientos públicos :

Public Sub ActualizaVentanas()
Dim frm As Form
Combo1.Clear
Actualizando = True

For Each frm In Forms
    If frm.Name <> Me.Name Then
        Combo1.AddItem frm.Caption
        Combo1.ItemData(Combo1.NewIndex) = frm.hwnd
    End If
Next
Actualizando = False
End Sub
Public Sub MuestraVentanaActiva(hwnd As Long)
Dim i As Long

For i = 0 To Combo1.ListCount - 1
    If Combo1.ItemData(i) = hwnd Then
        Actualizando = True
        Combo1.ListIndex = i
        Actualizando = False
        Exit For
    End If
Next i
End Sub

Añadimos también una variable a nivel de formulario :
Dim Actualizando As Boolean

En el evento click del combo añadimos (para que se active la ventana al seleccionarla en el combo) :

Dim frm As Form

If Not Actualizando Then
    For Each frm In Forms
        If frm.hwnd = Combo1.ItemData(Combo1.ListIndex) Then
            frm.SetFocus
            Exit For
        End If
    Next
End If


En cada formulario mdichild añadimos :

- En el evento Load, después de tener el caption del formulario como necesitemos, : MDIForm1.ActualizaVentanas
- En el evento Terminate : MDIForm1.ActualizaVentanas
- Para que esté seleccionada en el combo la que esté activa podemos poner en el Activate : MDIForm1.MuestraVentanaActiva Me.hwnd

Un saludo.

_________________________________________________
José Rubí de la Vega
E-mail : jrubi@arrakis.es
WWW : http://www.arrakis.es/~jrubi
Podrás encontrar información sobre VB, la lista
VB-ESP y un resumen de los mensajes de la misma



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com