Pregunta

Estoy tratando de crear una aplicación que haga que una ventana (externa a la aplicación) sea transparente cuando pierde el foco. La mayoría de las cosas (obtener la identificación de la ventana, establecer transparentes, etc.) sería fácil, excepto una cosa: ¿cómo engancho las ventanas?

¿Fue útil?

Solución

Puede usar interoperabilidad. Use la función SendMessage () para enviar su ventana Un mensaje personalizado. La ventana puede llamar SetLayeredWindowAttributes () una vez recibes ese mensaje para cambiar su transparencia.

La otra cosa es que realmente debería poder hacer que la ventana se vuelva transparente cuando pierda el foco escuchando WM_KILLFOCUS

EDITAR:

Enganche los eventos Desactivar y Activado en C #.

    private void Form1_Deactivate( object sender, EventArgs e )
    {
      this.Opacity = 0.5 ;
    }

    private void Form1_Activated( object sender, EventArgs e )
    {
      this.Opacity = 1.0 ;
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top