Ocultar un formulario al cambiar de aplicacion
Publicado por Aivan (6 intervenciones) el 20/06/2005 10:32:04
Hola a todos
A ver si alguien puede ayudarme con el siguiente problema. Tengo dos formularios A y B. El formulario A es la interfaz principal del programa y el formulario B es un formulario que se llama desde el formulario A . El formulario B, debido a las características de la aplicación, debe situarse en el primer plano de la pantalla, de forma que pueda trabajarse en el formulario A en todo momento y situación sin perder la visibilidad del formulario B. Para hacer esto utilizo la API 'setwindowspos' del siguiente modo:
SetWindowPos B.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
El problema está en que cuando abro cualquier otra aplicación el formulario B continua estando en el primer plano de la pantalla y me interesaría que el formulario en si, fuese capaz de detectar cuando otra aplicación recibe el foco para que de esta forma dejase de estar en el primer plano de la pantalla haciendo lo siguiente:
SetWindowPos B.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
He probado con los eventos form_lostfocus y form_deactivate y no sucede nada de nada. Alguien tiene alguna idea?
Gracias por todo y hasta otra!
A ver si alguien puede ayudarme con el siguiente problema. Tengo dos formularios A y B. El formulario A es la interfaz principal del programa y el formulario B es un formulario que se llama desde el formulario A . El formulario B, debido a las características de la aplicación, debe situarse en el primer plano de la pantalla, de forma que pueda trabajarse en el formulario A en todo momento y situación sin perder la visibilidad del formulario B. Para hacer esto utilizo la API 'setwindowspos' del siguiente modo:
SetWindowPos B.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
El problema está en que cuando abro cualquier otra aplicación el formulario B continua estando en el primer plano de la pantalla y me interesaría que el formulario en si, fuese capaz de detectar cuando otra aplicación recibe el foco para que de esta forma dejase de estar en el primer plano de la pantalla haciendo lo siguiente:
SetWindowPos B.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
He probado con los eventos form_lostfocus y form_deactivate y no sucede nada de nada. Alguien tiene alguna idea?
Gracias por todo y hasta otra!
Valora esta pregunta


0