delphi spy++ 拖拽功能

{$R *.dfm}
var h: HWND;
pt,p1: TPoint;
arr,arr1: array[0..254] of Char;
h1: HCURSOR;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=True;
Image1.Picture.LoadFromFile('02.bmp');
// h1:=LoadCursorFromFile('031.ico'); //031.ico
// SetSystemCursor(h1,ocr_normal);
Screen.Cursor:=crCross;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var p1:TPoint;
begin
GetCursorPos(p1);
h :=WindowFromPoint(p1);
label1.Caption:=Format('%d,%d',[p1.X,p1.Y]);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Screen.Cursor:=crDefault;
Timer1.Enabled:=False;
Label1.Caption:='';
Image1.Picture.LoadFromFile('01.bmp');
// SystemParametersinfo(SPI_SETCURSORS,0,nil,SPIF_SENDCHANGE);
Screen.Cursor:=crDefault;
GetClassName(h, arr, Length(arr));
GetWindowText(h, @arr1, SizeOf(arr));
Edit2.Text := arr;
Edit1.Text:=arr1;
end;
var h: HWND;
pt,p1: TPoint;
arr,arr1: array[0..254] of Char;
h1: HCURSOR;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=True;
Image1.Picture.LoadFromFile('02.bmp');
// h1:=LoadCursorFromFile('031.ico'); //031.ico
// SetSystemCursor(h1,ocr_normal);
Screen.Cursor:=crCross;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var p1:TPoint;
begin
GetCursorPos(p1);
h :=WindowFromPoint(p1);
label1.Caption:=Format('%d,%d',[p1.X,p1.Y]);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Screen.Cursor:=crDefault;
Timer1.Enabled:=False;
Label1.Caption:='';
Image1.Picture.LoadFromFile('01.bmp');
// SystemParametersinfo(SPI_SETCURSORS,0,nil,SPIF_SENDCHANGE);
Screen.Cursor:=crDefault;
GetClassName(h, arr, Length(arr));
GetWindowText(h, @arr1, SizeOf(arr));
Edit2.Text := arr;
Edit1.Text:=arr1;
end;
粘贴自: <http://www.cnpack.org/ >
自定义鼠标
通常鼠标形状是默认的箭头形状,本例演示如何通过编程来改变鼠标的形状,使程序可以更好地和用户交互。单击 “改变光标”按钮将鼠标形状,单击“恢复原型”按钮将鼠标改为默认形状。
Windows 提供设定鼠标形状的API 函数SetSystemCursor,首先要通过调用由LoadCursorFromFile读入的光标文件,然后调用SetSystemCursor 设定系统默认鼠标。它们的函数原型如下:
HCURSOR LoadCursorFromFile ( LPCTSTR lpFileName );
BOOL SetSystemCursor ( HCURSOR hcur, DWORD id );
如果要恢复Windows 默认形状,可以调用函数SystemParametersinfo,它的函数原型如下:
BOOL SystemParametersInfo(
UINT uiAction, //查询还是设定系统参数
UINT uiParam, //该参数取决于要采取的动作
PVOID pvParam, //该参数取决于要采取的动作
UINT fWinIni //用户配置文件更新标志
);
下面利用一个示例来介绍自定义鼠标的方法。
(1)创建一个新Delphi 项目,为窗体添加两个按钮,标题分别设为“改变光标”和“恢复原型”。
(2)添加“改变光标”按钮的OnClick 事件的处理过程,用来改变光标的形状,代码如下:
通常鼠标形状是默认的箭头形状,本例演示如何通过编程来改变鼠标的形状,使程序可以更好地和用户交互。单击 “改变光标”按钮将鼠标形状,单击“恢复原型”按钮将鼠标改为默认形状。
Windows 提供设定鼠标形状的API 函数SetSystemCursor,首先要通过调用由LoadCursorFromFile读入的光标文件,然后调用SetSystemCursor 设定系统默认鼠标。它们的函数原型如下:
HCURSOR LoadCursorFromFile ( LPCTSTR lpFileName );
BOOL SetSystemCursor ( HCURSOR hcur, DWORD id );
如果要恢复Windows 默认形状,可以调用函数SystemParametersinfo,它的函数原型如下:
BOOL SystemParametersInfo(
UINT uiAction, //查询还是设定系统参数
UINT uiParam, //该参数取决于要采取的动作
PVOID pvParam, //该参数取决于要采取的动作
UINT fWinIni //用户配置文件更新标志
);
下面利用一个示例来介绍自定义鼠标的方法。
(1)创建一个新Delphi 项目,为窗体添加两个按钮,标题分别设为“改变光标”和“恢复原型”。
(2)添加“改变光标”按钮的OnClick 事件的处理过程,用来改变光标的形状,代码如下:
{使用自定义的光标}
procedure TForm1.Button1Click(Sender: TObject);
var h: HCURSOR;
begin
h:=LoadCursorFromFile('a.cur');
SetSystemCursor(h,ocr_normal);
end;
{恢复默认光标}
procedure TForm1.Button2Click(Sender: TObject);
begin
SystemParametersinfo(SPI_SETCURSORS,0,nil,SPIF_SENDCHANGE);
end;
如何制作.CUR文件
png -> icon
1 用ps处理个32*32 的rgb png文件
2 用格式工厂 转换png->ico 32*32的

