Domingo 22 de Diciembre de 2024, 14:45
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Problema Con Formularios
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema Con Formularios (Leído 2548 veces)
ROBER.29
Miembro MUY activo
Mensajes: 421
Problema Con Formularios
«
en:
Jueves 3 de Junio de 2004, 16:41 »
0
Hola,
Mi problema es el siguiente, tengo una aplicación que se ejecuta minimizada en la barra de tarea de windows, simplemente una vez arrancada aparece un icono al lado del reloj de windows y el problema es que cuando se produce un error abro un formulario con el mensaje de error pero si por ejemplo el usuario esta navegando por internet, o está con el bloc de notas o cualquier otra aplicación, el formulario se keda abierto detrás de dicha aplicación y me gustaria que cuando se abriera el formulario que muestra el mensaje de error se mostrara por encima de todas las aplicaciones que el usuario tiene abiertas para que se enterara de que se aproducido un error y que la aplicación se a parado de ejecutar.
Por que por ejemplo si esta con el navegador abierto y está navegando por internet y se produce un error el usuario ahora mismo no se entera de que mi aplicación ha dado un error hasta que cierre el navegador o lo minimice y vea el formulario con el error.
Espero que me hayais entendido.
Un saludo.
Tweet
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Problema Con Formularios
«
Respuesta #1 en:
Jueves 3 de Junio de 2004, 18:15 »
0
Hola Rober.29.
Una vez que abres el form con el error (en el evento Load del mismo, por ejemplo) realiza una llamada a la función del api
SetWindowPos
algo así:
En el form que muestras con el error...
Código: Text
.
.
.
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE
Private 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
.
.
.
Private Sub Form_Load()
.
.
.
SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, SWP_FLAGS
.
.
.
End Sub
Con esto debería ser suficiente.
Chao.
ROBER.29
Miembro MUY activo
Mensajes: 421
Re: Problema Con Formularios
«
Respuesta #2 en:
Viernes 4 de Junio de 2004, 14:19 »
0
Muchas gracias.
Al final ayer consegui hacerlo de la siguiente forma:
Este código en un módulo.
Código: Text
'Posicionar formulario (Declaraciones Públicas de API)
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 SWP_NOACTIVATE As Boolean
Public SWP_SHOWWINDOW As Boolean
'Proecedimientos públicos
Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean)
Dim lflag As Integer
'Mantener el formulario siempre visible
If SetOnTop Then
lflag = HWND_TOPMOST
Else
lflag = HWND_NOTOPMOST
End If
SetWindowPos myfrm.hwnd, lflag, _
myfrm.Left / Screen.TwipsPerPixelX, _
myfrm.Top / Screen.TwipsPerPixelY, _
myfrm.Width / Screen.TwipsPerPixelX, _
myfrm.Height / Screen.TwipsPerPixelY, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW
End Sub
Y el evento Load del formulario:
Código: Text
Private Sub Form_Load()
AlwaysOnTop Me, True
End Sub
Un saludo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Problema Con Formularios