Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

MdiChild en tiempo de diseño, es posible?

Estas en el tema de MdiChild en tiempo de diseño, es posible? en el foro de Visual Basic clásico en Foros del Web. Tengo mi form mdi y quiero llamar a un form de esta manera form10.MDIChild = true Logicamente me envia error, pero necesito hacer esto ya ...
  #1 (permalink)  
Antiguo 08/09/2008, 15:05
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
MdiChild en tiempo de diseño, es posible?

Tengo mi form mdi y quiero llamar a un form de esta manera

form10.MDIChild = true

Logicamente me envia error, pero necesito hacer esto ya que solo necesito al form10 como mdichild al llamarlo desde el menu, si lo llamo desde otro no formulario no bede ser mdichild.

Como puedo solucionar esto, quizas con alguna api?
  #2 (permalink)  
Antiguo 08/09/2008, 15:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: MdiChild en tiempo de diseño, es posible?

La única idea que se me ocurre es que tengas la propiedad MDIChild a True, y luego cuando no quieres que esté dentro del MDI cambias con la API (SetParent) la ventana padre, en este caso la ventana padre debería llegar a ser el escritorio, no sé si funcionará correctamente pero pruébalo y nos cuentas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 08/09/2008, 15:55
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: MdiChild en tiempo de diseño, es posible?

Efectivamente David, aqui el codigo:

Código:
 
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Const GW_HWNDNEXT = 2
Dim mWnd As Long
Private Sub Form_Load()
    Form2.Show
    mWnd = Form2.hwnd
    SetParent mWnd, Me.hwnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Unload Form2
End Sub
Pero ten cuidado q al monento de cambiar de tamaña a la ventana Padre se te puede presentar algunos problemas.
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #4 (permalink)  
Antiguo 08/09/2008, 17:56
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: MdiChild en tiempo de diseño, es posible?

Funciono muy bien, tengo una pregunta respecto a las apis.
Como utilizarlas correctamente, es decir puedo declarar varias apis en un mismo modulo?
Por ahora estoy usando 3 apis en 3 modulos diferentes, en que afecta tener 3 modulos en mi aplicacion se pondra mas lenta o no tiene nada que ver.Para llamar a cada funcion del modulo utilizo el nombre para evitar confusion de esta manera module1.SetParent

saludos y gracias
  #5 (permalink)  
Antiguo 09/09/2008, 06:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: MdiChild en tiempo de diseño, es posible?

No necesitas declaralas en módulos separados, pueden ir en un mismo módulo. Y tampoco necesitas especificar el nombre del módulo.

P.S.: No son varias API, la API de Windows es una sola .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:53.