2012-08-04 3 views
6

Ho un modulo a schermo intero semi trasparente e ho bisogno di controllare il mio computer su questo modulo.Fare clic sul modulo trasparente

In realtà abbiamo bisogno del filtro schermo rosso sul computer per osservare il cielo, ma non vogliamo usare qualcosa come il plexiglass rosso.

Ho provato le API di Windows (funzioni di configurazione del monitor) http://msdn.microsoft.com/en-us/library/windows/desktop/dd692964(v=vs.85).aspx ma non riesco a farlo. Ho fatto una forma trasparente come il filtro rosso (tutto sembra rosso e nero), ma non riesco a controllare il computer sul mio modulo. Qualcuno mi aiuti a riguardo?

risposta

13

Creare un nuovo progetto VCL. Nelle proprietà del modulo principale, impostare Color a clRed, AlphaBlend a true, AlphaBlendValue a 127, WindowState a wsMaximized, FormStyle a fsStayOnTop, e aggiungere il codice seguente:

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 so. :-) Non sei responsabile per i problemi di PEBKAC. : D Pulizia del rumore che ho aggiunto sopra. Cancellerò anche questo in pochi minuti. –