2012-08-04 15 views
6

Tôi có hình thức toàn màn hình bán trong suốt và tôi cần có thể điều khiển máy tính của mình qua biểu mẫu này.Nhấp vào hình thức minh bạch

Thực tế chúng ta cần bộ lọc màn hình màu đỏ trên máy tính để quan sát bầu trời, nhưng chúng tôi không muốn sử dụng thứ gì đó như plexiglass màu đỏ.

Tôi đã thử Windows API (Chức năng cấu hình màn hình) http://msdn.microsoft.com/en-us/library/windows/desktop/dd692964(v=vs.85).aspx nhưng tôi không thể làm điều đó. Tôi đã làm hình thức trong suốt như bộ lọc màu đỏ (tất cả mọi thứ có vẻ là tông màu đỏ và đen), nhưng tôi không thể kiểm soát máy tính trên biểu mẫu của tôi. Có ai giúp tôi về điều đó không?

Trả lời

13

Tạo dự án VCL mới. Trong các tính chất của hình thức chính, thiết lập Color-clRed, AlphaBlend để true, AlphaBlendValue để 127, WindowState để wsMaximized, FormStyle để fsStayOnTop, và thêm đoạn mã sau:

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

Vâng, tôi biết. :-) Bạn không chịu trách nhiệm về các vấn đề PEBKAC. : D Dọn dẹp tạp âm tôi đã thêm ở trên. Tôi cũng sẽ xóa nó sau vài phút nữa. –