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

Mostrar siempre un formulario

Estas en el tema de Mostrar siempre un formulario en el foro de Visual Basic clásico en Foros del Web. Tengo un formulario MDI y otro form llamado frmCargo el problema es que no lo quiero declarar como MDIChild a este ultimo, por x motivos ...
  #1 (permalink)  
Antiguo 07/03/2008, 18:33
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Mostrar siempre un formulario

Tengo un formulario MDI y otro form llamado frmCargo el problema es que no lo quiero declarar como MDIChild a este ultimo, por x motivos

Lo que quiero hacer es, al ejecutar la aplicacion oviamente se ejecuta el MDIForm desde el cual se llamara al frmCargo, pero este siempre se mantendra visible es decir delante del MDIForm aunque se seleccione el MDIForm

El problema ocurre cuando ambos formularios estan habiertos y al selecionar uno se pone delante del otro, como hago para que el mdi siempre se quede al fondo y el frmcargo delante, logicamente el mdi ocupa toda la pantalla y frmcargo es mas pequeño

saludos y espero me puedan ayudar estoy seguro que se trata solo de activar una propiedad
  #2 (permalink)  
Antiguo 08/03/2008, 07:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 40
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Mostrar siempre un formulario

lo que yo hago es en el mdi cuando elegis una solapa del menu es esto:

Private Sub mnuaudi_Click()
MDIForm1.Enabled = False ' aca lo inabilito al mdi
frmauditoria.Show
End Sub
y cuando el form frmauditoria se cierra le pones lo contrario no osea
MDIForm1.Enabled = True
entonces cuando abras otro form desde el mdi cuando quieras volver al mdi no te lo permite
  #3 (permalink)  
Antiguo 10/03/2008, 11:27
 
Fecha de Ingreso: marzo-2008
Ubicación: Mendoza
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Mostrar siempre un formulario

Yo utilizaria la funcion AlwaisOnTop (siempre arriba)

Codigo para el form frmCargo:

Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wflags As Long) As Long
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40

Public Sub AlwaisOnTop(f As Form, estado As Boolean)
Dim wflags As Long
Dim ret As Long
'para que no cambie el tamaño ni la posición
wflags = SWP_NOMOVE Or SWP_NOSIZE
If estado Then
ret = SetWindowPos(f.hwnd, HWND_TOPMOST, 0, 0, 0, 0, wflags)
Else
ret = SetWindowPos(f.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, wflags)
End If
End Sub

Private Sub Form_Load()
AlwaisOnTop Me, True
End Sub
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 13:22.