如何自定义鼠标指针?(具体代码)似乎Delphi没有提供Custom选项。(50分)

  • 主题发起人 主题发起人 whyidontknow
  • 开始时间 开始时间
W

whyidontknow

Unregistered / Unconfirmed
GUEST, unregistred user!
如何自定义鼠标指针?(具体代码)似乎Delphi没有提供Custom选项。
谢谢。
 
葵花宝典的实例,你自己看一下:

一.建立工程与一个资源档
用Image Editor编辑一个鼠游标
  (Fild | New | Resource File)
新建一个 CURSOR_1 的 CURSOR, 设定好它的 Hot Spot
  (Cursor | Set Hot Spot)
存档时注意要和建立的Project存在同一个目录
在本例我们先假定为 MyCursor.res
二. 程序部分
定义一个常数crMyCursor, 这个常数您必须设成大於零
的任何整数, 以 LoadCursor() 函数将自订的鼠标资源
load 进来, 以下为源代码:
// unit.pas
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes,
Graphics, Controls, Forms, Dialogs;

const
crMyCursor = 1; (* 宣告一个常数 *)
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
{$R mycursor.res}//这行$R不可少, 否则自订的鼠游标就出不来了
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
//将鼠标资源 load 进来
Screen.Cursors[crMyCursor] := LoadCursor (hInstance,'CURSOR_1');
Cursor := crMyCursor;//指定 form1 的 cursor 为自订鼠标
Button1.Cursor := crMyCursor;//指定Button1的cursor为自订鼠标
end;
end.
 
我试了,没有效果?
 
我也试过,没用的
 
注意:“新建一个 CURSOR_1 的 CURSOR”
“Screen.Cursors[crMyCursor] := LoadCursor (hInstance,'CURSOR_1');”
中的 CURSOR_1,最好注意一下大小写。
 
screen.Cursors[1]:=application.Icon.Handle ;
SetsystemCursor( application.Icon.Handle,OCR_NORMAL );
 
我要这分了,写一个资源文件例如:
mycur cursor pen.cur
设置鼠标指针:
var
scr:hicon;

scr:=loadcursor(hinstance,'mycur');
setsystemcursor(scr,ocr_normal);
还原鼠标指针:
systemparametersinfo(spi_setcursors,0,nil,spif_sendchange);
 
多人接受答案了。
 
后退
顶部