每个月,总有那么几天,感到不方便... about Win2000 shadow cursor(200分)

  • 主题发起人 主题发起人 o*o
  • 开始时间 开始时间
O

o*o

Unregistered / Unconfirmed
GUEST, unregistred user!
要在Win9x下实现WIN2000那样的带阴影的鼠标指针。
全屏的最好,实在不行本程序窗口内实现也成。

实在是不方便,不会作。
 
呵呵,看着向MM的问题……
 
>WIN2000那样的带阴影的鼠标指针
呵呵,谁能描述一下什么模样,Window2000没用过?
 
原来你有那么几天,哈哈。。
 
前卫兄,它是沿鼠标轮廓有一层半透明的阴影。

liuchuanbo,有什么好乐的,傻乎乎的。:-)
 
o*o:
>>本程序窗口内实现也成……

你自己画出那个样子的不行吗?
 
eyes曾经说过,可以先把cursor隐藏起来,用鼠标钩子
截获移动等,然后往屏幕上画半透明的东西
 
本程序可以,copy……

把图标存入临时文件,用Loadcursorfromfile()从临时文件读出光标。
  程序段:
  procedure ZloadfromResourse(screenindex:integer;name:Pchar);
  var td:ticon;
  begin
  try
  td:=ticon.Create;
  td.Handle:=LoadIcon(Hinstance,name);
  td.SaveToFile(′temp.cur′);
  screen.Cursors[screenindex]:=loadcursorfromfile(′temp.cur′);
  deletefile(′temp.cur′);
  finally
  td.free;
  end;
  end;
  //此程序把名字为name的图标变为序号为screenindex的光标;
  例:
  ZloadfromResourse(2,′youricon′);
  Form1.cursor:=2;
  //注意:′youricon′这个图标一定要在资源文件中,否则会出现异常。  
 
to wjiachun:

我在 imageeditor 中,创建了一个Cursor 的资源文件,
叫做 CURSOR1, 在程序中 LoadCursor(hInstance, ...);
后面这个参数怎么写,help 说是 name, 我不知道 name 呀,
用 makeintresource(CURSOR1), 它又说 CURSOR1没有定义,
怎么在程序中调用呢? 已经{$R myfile.RES}


借宝地一用,谢谢。
 
你定义上面的procedure ZloadfromResourse screenindex:integer;name:Pchar);过程,
然后直接在你的程序中用

ZloadfromResourse(2,‘cursor1');
Form1.cursor:=2;

不行吗?我现在没有Delphi,过一会儿测试一下,(我以前用没有问题的)……

另外:到我的问题去灌水……
  
  
 
各位大侠,谁现在有Delphi的帮我看看代码,注意要是copy不要那么多的空格才行……
我以前在那里找的忘了,各位看看吧,告诉我错误提示信息也行……
 
没人帮忙?

SuperMMX:我的程序通过,没问题!
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.DFM}
{$R myres.res}//这一行必须有

procedure ZloadfromResourse(screenindex:integer;name:Pchar);
var td:ticon;
begin
try
td:=ticon.Create;
td.Handle:=LoadIcon(Hinstance,name);
td.SaveToFile('temp.cur');
screen.Cursors[screenindex]:=loadcursorfromfile('temp.cur');
deletefile('temp.cur');
finally
td.free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ZloadfromResourse(2,'icon1');//注意在资源文件中用大写 ICON1,你可以画出任意形状和颜色
Form1.cursor:=2;
end;

end.
 
我是新来的,瞎说可以吗???
别欺侮我哦!
先画一个嘛!,或用IMAGEEDITOR调出WINDOWS2000中的*。CUR文件修改一下。加个阴影。
用API:
LOADCURSORFROM(‘路径’,鼠标文件名);
SETCLASSLONG(HANDLE,GCL_...,鼠标变量);
其中HANDLE可以是,例如:FORM1.HANDLE;
对不起记不清楚了,我回家翻一下资料,下回告诉你,好吗?
如果说错了,请原谅;
 
谢谢你的回答。:-)
不过那阴影是实时算出来的。
 
win 2k 的鼠标指针是挺cool的, 不知道怎么做。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部