CURSOR!!!!(100分)

  • 主题发起人 主题发起人 cosher
  • 开始时间 开始时间
C

cosher

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在自定义控件中使用自订CURSOR
 
API: LoadCursor.
 
控件有Cursor属性,默认为crDefault,你可以在控件的构造函数中设置如(十字架):
Cursor:=crCross;
 
用LoadCursor吧!把自定义的Cursor作为文件或资源来调用
 
程序中使用自定义的鼠标

一.建立工程与一个资源档用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.

以下两个语句的效果不一样:第一句改变整个应用程序的光标(Form及其下所有控件),第二句只改变Form1的光标。
 
多人接受答案了。
 
后退
顶部