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