射手的博客
学习Delphi,需要一个记录学习的博客,

 SetClassLong  常用于替换光标样式,增添美观性;

DWORD SetClassLong(

    HWND hWnd,  
// handle of window (窗口句柄)
    int nIndex,  // index of value to change (设置的属性)
    LONG dwNewLong   // new value (设置的属性的值)
   );

nlndex  属性索引
  GCL_CBCLSEXTRA:
//设置与类相关的尺寸的字节大小。设定该值不改变己分配的额外字节数。
  GCL_CBWNDEXTRA:
//设置与类中的每一个窗口相关的尺寸的字节大小。设定该值不改变已分配额外字节数。查看如何进入该内存,参看SetWindowLOng。
  GCL_HERBACKGROUND:
//替换与类有关的背景刷子的句柄。
  GCL_HCURSOR:
//替换与类有关的光标的句柄。{替换指定窗口中的光标图标,dwNewLong 读取光标位置 如 '1.ani'}
GCL_HICON:
//替换与类有关的图标的句柄。 {替换指定窗口中的程序图标,dwNewLong 读取图标位置 如 '1.ico'}  
GCL_HMODULE:
//替换注册类的模块的句柄。
GCL_STYLE:
//替换窗口类的风格位。
  CGL_MENUNAME :
//替换菜单名字符串的地址。该字符串标识与类有关的菜单资源。
  GCL_WNDPROC :
//替换与窗口类有关的窗口过程的地址。

例:

 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, jpeg, ExtCtrls,xpman;

type
  TForm1 
= class(TForm)
    Button1: TButton;
    Image1: TImage;
    Image2: TImage;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  
private
    
{ Private declarations }
  
public
    
{ Public declarations }
  end;
var
  Form1: TForm1;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  HNewCursor: Hcursor;
begin
  HNewcursor:
=LoadCursorfromfile('1.ANI');
  
//调用API函数装载动画光标文件,ANI文件路径请根据自己的实际情况进行调整
  SetClassLong(Form1.Handle,GCL_HCURSOR,HNEWCURSOR);
  
//替换光标为制定光标.
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  HoldCursor:
=SetClassLong(Form1.Handle,GCL_HCURSOR,0);
  Close;
  
//在结束程序前一定不要忘记恢复光标,属性值0我的理解应该是还原为系统光标
end;
end.

 

posted on 2009-04-13 11:21 Archer 阅读(1220) 评论(0)  编辑 收藏 引用 所属分类: Windows API 函数
只有注册用户登录后才能发表评论。