Discussion:
Convertir Form normal a MDIChild en runtime
(demasiado antiguo para responder)
Salvador Acosta
2004-08-31 00:44:30 UTC
Permalink
Teniendo en tiempo de diseño un formulario MDI y un formulario normal con la
propiedad MDIChild = False, y luego tratar de cambiar a True en tiempo de
ejecución, ya me he dado cuenta que es imposible. Por lo que me pregunto si
no existiría alguna forma de cambiar la mencionada propiedad a True en
tiempo de ejecución para hacer que forme parte de la colección de formulario
hijos de un MDI principal.

Gracias por adelantado.
Mario Barahona
2004-08-31 01:32:46 UTC
Permalink
Que tal, Salvador.

Como bien dices, no es posible alterar la propiedad MDIChild en tiempo de
ejecución; sin embargo, puedes obtener un efecto parecido, pues el
comportamiento por defecto no va a ser exactamente igual al de un MDIChild
común, mediante la API SetParent.

Prueba este ejemplo:

Crea dos formularios en los que MDIChild sea False y pon este código en
Form1.

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long,
ByVal hWndNewParent As Long) As Long

Private Sub Form_Load()
Form2.Show
SetParent Form2.hWnd, Me.hWnd
End Sub

Espero te sirva.

Saludos

Mario Barahona
unknown
2004-08-31 05:38:58 UTC
Permalink
Post by Salvador Acosta
Teniendo en tiempo de diseño un formulario MDI y un formulario normal con la
propiedad MDIChild = False, y luego tratar de cambiar a True en tiempo de
ejecución, ya me he dado cuenta que es imposible. Por lo que me pregunto si
no existiría alguna forma de cambiar la mencionada propiedad a True en
tiempo de ejecución para hacer que forme parte de la colección de formulario
hijos de un MDI principal.
Gracias por adelantado.
Hola, Salvador:

Hace cosa de un mes, alguien (a quien le ofrezco mis disculpas por no
recordar su nombre) posteó al grupo un archivo .zip con un control activeX
que incluye en una forma MDI, formas provenientes de una DLL que se
comportan exactamente como si fueran formas MDI hijas. No tengo tiempo de
probar a fondo si funciona (o cómo lo hace). Supongo que aunque no resuelva
tu problema, podrás aprender mucho si le das una mirada.

Puedes obtenerlo (codigo fuente o binario) en
http://www6.brinkster.com/wallner/mdi.html.
--
Salud!

Leonardo
[MVP Visual Basic]
leonardo<arroba>mvps<punto>org

"El presente es una luz que palpita entre dos tinieblas"
- Naguib Mahfuz
Loading...