在win95,win98下实现半透明的窗口
点击次数:37 次 发布日期:2008-11-09 08:41:58 作者:源代码网
|
源代码网推荐 源代码网推荐 unit JtoCXPAuto; 源代码网推荐 源代码网推荐 interface 源代码网推荐 源代码网推荐 uses 源代码网推荐 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, FORMs, 源代码网推荐 Dialogs, ExtCtrls, ShellApi; 源代码网推荐 源代码网推荐 type 源代码网推荐 TAutoFORM = class(TFORM) 源代码网推荐 BackImg: TImage; 源代码网推荐 procedure FORMShow(Sender: TObject); 源代码网推荐 procedure BackImgMouseUp(Sender: TObject; Button: TMouseButton; 源代码网推荐 Shift: TShiftState; X, Y: Integer); 源代码网推荐 procedure BackImgMouseMove(Sender: TObject; Shift: TShiftState; X, 源代码网推荐 Y: Integer); 源代码网推荐 private 源代码网推荐 { Private declarations } 源代码网推荐 public 源代码网推荐 { Public declarations } 源代码网推荐 end; 源代码网推荐 源代码网推荐 var 源代码网推荐 AutoFORM: TAutoFORM; 源代码网推荐 EMailRect:TRect; 源代码网推荐 implementation 源代码网推荐 源代码网推荐 uses JtoCXPMain,JtoCXPPubVar; 源代码网推荐 源代码网推荐 {$R *.dfm} 源代码网推荐 源代码网推荐 procedure TAutoFORM.FORMShow(Sender: TObject); 源代码网推荐 var 源代码网推荐 ScreenDc,DestDc:Hdc; 源代码网推荐 BHandle:THandle; 源代码网推荐 X,Y:integer; 源代码网推荐 Color:TColor; 源代码网推荐 Color1,Color2,Color3:Byte; 源代码网推荐 FORMRgn:Hrgn; 源代码网推荐 begin 源代码网推荐 FORMRgn:=CreateRoundRectRgn(0,0,Width,Height,15,15); 源代码网推荐 SetWindowRgn(Handle,FORMRgn,True); 源代码网推荐 源代码网推荐 EnableWindow(MainFORM.Handle,False); 源代码网推荐 ScreenDc:=CreateDc("DISPLAY",nil,nil,nil); 源代码网推荐 DestDc:=CreateCompatibleDc(ScreenDc); 源代码网推荐 BHandle:=CReateCompatibleBitmap(ScreenDc,Width,Height); 源代码网推荐 SelectObject(DestDc,Bhandle); 源代码网推荐 BitBlt(DestDc,0,0,Width,Height,ScreenDc,MainFORM.Left (MainFORM.Width -Width)div 2, 源代码网推荐 MainFORM.Top (MainFORM.Height -Height)div 2,SRCCOPY); 源代码网推荐 for x:=0 to Width-1 do begin 源代码网推荐 for y:=0 to Height-1 do begin 源代码网推荐 Color:=GetPixel(DestDc,x,y); 源代码网推荐 Color1:=GetRvalue(Color) div 3; 源代码网推荐 Color2:=GetGvalue(Color) div 3; 源代码网推荐 Color3:=GetBvalue(Color) div 3; 源代码网推荐 Color:=RGB(Color1,Color2,Color3); 源代码网推荐 SetPixel(DestDC,x,y,Color); 源代码网推荐 end; 源代码网推荐 end; 源代码网推荐 BitBlt(BackImg.Canvas.Handle,0,0,Width,Height,DestDC ,0,0,SRCCOPY); 源代码网推荐 DeleteDc (DestDc); 源代码网推荐 ReleaseDc (Bhandle,ScreenDc); 软件开发网 www.mscto.com 源代码网推荐 with BackImg.Canvas do begin 源代码网推荐 Moveto(0,0); 源代码网推荐 Pen.Color :=rgb(192,192,192); 源代码网推荐 Lineto(BackImg.Width -1,0); 源代码网推荐 // Pen.Color :=rgb(64,64,64); 源代码网推荐 Lineto(BackImg.Width -1,backImg.Height -1); 源代码网推荐 Lineto(0,BackImg.Height-1); 源代码网推荐 Pen.Color :=rgb(192,192,192); 源代码网推荐 Lineto(0,0); 源代码网推荐 源代码网推荐 Font.Size :=16; 源代码网推荐 Font.Color :=RGB(255,255,255); 源代码网推荐 Brush.Style :=bsClear; 源代码网推荐 TextOut((Width-TextWidth("欢迎你使用---对译"))div 2,5,"欢迎你使用---对译"); 源代码网推荐 Font.Size :=12; 源代码网推荐 TextOut(20,40,"版本信息:"); 源代码网推荐 TextOut(120,40,"( 2002.03.08 )"); 源代码网推荐 TextOut(20,70,"电子邮件:"); 源代码网推荐 TextOut((Width-TextWidth("这是我个人编写的,请指教!"))div 2,105,"这是我个人编写的,请指教!"); 源代码网推荐 Font.Color :=Rgb(255,0,0); 源代码网推荐 Font.Style :=[fsUnderline]; 源代码网推荐 TextOut(120,70,"sbjane9@163.com"); 源代码网推荐 end; 源代码网推荐 end; 源代码网推荐 源代码网推荐 procedure TAutoFORM.BackImgMouseUp(Sender: TObject; Button: TMouseButton; 源代码网推荐 Shift: TShiftState; X, Y: Integer); 源代码网推荐 var 源代码网推荐 pt:Tpoint; 源代码网推荐 begin 源代码网推荐 GetCursorpos(pt); 源代码网推荐 if PtinRect(EMailRect,pt) then begin 源代码网推荐 ShellExecute(handle,nil,pchar("MailTo:" MyEmail),nil,nil,SW_SHOWNORMAL); 源代码网推荐 exit;end 源代码网推荐 else begin 源代码网推荐 AutoFORM.Close; 源代码网推荐 EnableWindow(MainFORM.Handle,True); 源代码网推荐 end; 源代码网推荐 end; 源代码网推荐 源代码网推荐 procedure TAutoFORM.BackImgMouseMove(Sender: TObject; Shift: TShiftState; 源代码网推荐 X, Y: Integer); 源代码网推荐 var 源代码网推荐 Pt:Tpoint; 源代码网推荐 begin 源代码网推荐 EMailRect:=Bounds(Left 120,Top 70,16*12,14); 源代码网推荐 GetCursorpos(pt); 源代码网推荐 if PtinRect(EMailRect,pt) then 源代码网推荐 Cursor:=crHandPoint 源代码网推荐 else 源代码网推荐 Cursor:=crDefault; 源代码网推荐 源代码网推荐 end; 源代码网推荐 源代码网推荐 end. 源代码网推荐 源代码网供稿. |
