2012-08-04 26 views
6

Tengo un formulario de pantalla completa semitransparente y necesito controlar mi computadora a través de este formulario.Haga clic en el formulario transparente

Actualmente necesitamos un filtro de pantalla roja en la computadora para observar el cielo, pero no queremos usar algo como el plexiglás rojo.

Probé las API de Windows (funciones de configuración del monitor) http://msdn.microsoft.com/en-us/library/windows/desktop/dd692964(v=vs.85).aspx pero no puedo hacerlo. Hice una forma transparente como filtro rojo (todo parece rojo y tonos negros), pero no puedo controlar la computadora sobre mi formulario. ¿Alguien me ayuda con eso?

Respuesta

13

Cree un nuevo proyecto de VCL. En las propiedades de la forma principal, configurar Color-clRed, AlphaBlend a true, AlphaBlendValue a 127, WindowState a wsMaximized, FormStyle a fsStayOnTop, y añadir el siguiente código:

type 
    TForm1 = class(TForm) 
    private 
    protected 
    procedure CreateParams(var Params: TCreateParams); override; 

... 

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
    inherited; 
    Params.ExStyle := Params.ExStyle or WS_EX_LAYERED or WS_EX_TRANSPARENT; 
end; 

(Sample video, Sample compiled EXE, Source)

+0

Sí, lo sé. :-) No eres responsable de los problemas PEBKAC. : D Limpieza de ruido que agregué arriba. Eliminaré esto también en unos minutos. –

Cuestiones relacionadas