实现界面跟随鼠标移动的实例

类别:Delphi 点击:0 评论:0 推荐:

unit Unit_Mouse;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

 {=======================================================
  DESIGN BY :  花好月圆 / 玉面书生
  DATE:        2005-01-30
  SITE:        http://www.eastrise.cn/quick2004
  BLOG:        http://blog.csdn.net/jackie168
  EMAIL:       [email protected]

  文章为作者原创,转载前请先与本人联系,转载请注明文章出处、保留作者信息,谢谢支持!
=======================================================}

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
     procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   i:integer;  //全局变量
implementation

{$R *.dfm}
//自写函数
function proc(icode:integer;wparam:wparam;lparam:lparam):lresult;stdcall;
var
evtmsg:teventmsg;
begin
    evtmsg:=peventmsg(lparam)^;
    Form1.Left:=mouse.CursorPos.X+10;
    form1.Top:=mouse.CursorPos.Y+10;
    if evtmsg.message=WM_RBUTTONUP then
    Form1.N1.Click;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
    N1.Checked:= not N1.Checked;
    if N1.Checked then
    i:=setwindowshookex(WH_JOURNALRECORD,proc,hinstance,0)
    else
    unhookwindowshookex(i);
    Top:=(screen.Height-Height)div 2;
    Left:=(screen.Width - width-55) div 2;
end;

end.

本文地址:http://com.8s8s.com/it/it4363.htm