难度挺大,改变屏幕的颜色----高分赠送300(300分)

  • 主题发起人 主题发起人 Mu_Mian
  • 开始时间 开始时间
M

Mu_Mian

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在打开窗体A时,将屏幕中不属于该窗体部分的颜色全部变成黑白模式,仅仅保留窗体A的颜色。就像使用XP时,注销、切换用户、改变屏幕背景一样
 
它那个是先把屏幕记录下来,然后把图片改为了灰度而已
 
那有没有更好的办法,请各大侠指教
 
试一下这个过程看看,在显示窗口之前填充屏幕Color:
procedure GetScreen();
var Dc: HDC;
MyCanvas: TCanvas;
MyRect: TRect;
begin
Dc := GetWindowDC(0);
MyCanvas := TCanvas.Create;
try
MyCanvas.Handle := Dc;
MyRect:=Rect(0, 0,Screen.Width, Screen.Height);
MyCanvas.Brush.Color:=clBlue;
MyCanvas.FillRect(MyRect);
finally
MyCanvas.Handle := 0;
MyCanvas.Free;
ReleaseDC(0, Dc);
end;
end;
 

Similar threads

I
回复
0
查看
768
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部