鼠标拖动虚影效果
1 //1.定义消息 2 procedure MYHideMessage(var Msg: tagMSG; var Handled: Boolean); 3 4 //2.执行消息 5 procedure TForm2.MYHideMessage(var Msg: tagMSG; var Handled: Boolean); 6 var 7 pt:TPoint; 8 bit: TBitmap; 9 begin 10 case Msg.message of 11 WM_LBUTTONDOWN: //鼠标左键按下显示虚窗体 12 begin 13 //复制一个主窗体的图片 14 bit := TBitmap.Create; 15 bit.Width := Width; 16 bit.Height := Height; 17 BitBlt(bit.Canvas.Handle, 0, 0, Width, Height, GetWindowDC(Handle), 0, 0, SRCCOPY); 18 //虚窗体加载图片 19 Form1.Image1.Picture.Assign(bit); 20 //我这里为了方便大家看代码没有用TRY,大家写时注意了 21 bit.Free; 22 //设置虚窗体的大小 23 Form1.Height:=Form2.Height; 24 Form1.Width:=Form2.Width; 25 Form1.Image1.Align:=alClient; 26 Form1.BorderStyle:=bsNone; 27 //显示虚窗体 28 Form1.Show; 29 //设置透明度 30 Form1.AlphaBlend:=True; 31 Form1.AlphaBlendValue:=100; 32 end; 33 WM_MOUSEMOVE: //鼠标移动虚窗体根着移动 34 begin 35 //取出鼠标的位置 36 GetCursorPos(pt); 37 Caption:=\'X坐标: \'+inttostr(pt.X)+\' Y坐标: \'+inttostr(pt.Y); 38 //设置虚窗体的位置 39 Form1.Top:=pt.Y; 40 Form1.Left:=pt.X; 41 end; 42 WM_LBUTTONUP: //鼠标左键跳起虚窗体隐藏 43 begin 44 Form1.Hide; 45 end; 46 end; 47 end;