自定义鼠标光标的阴影(2)

时间:2011-04-08 08:31:45

标签: windows delphi cursor mouse shadow

在阅读Shadow for custom mouse cursor问题的答案后,我做了一些测试。

从我的Delphi应用程序中加载了32bit和24bit版本的光标。永远不是影子。我用标准的Windows箭头指针做了同样的事情。也没有影子。

此外,我尝试了相反的操作并将自定义光标分配给Windows鼠标设置中的“正常选择”指针。 24位和32位指针都有一个阴影。

因此,看起来游标中的alpha通道不会影响阴影行为。但是我在申请中做错了什么?

第一步是通过带有

的.rc文件将光标添加到应用程序的资源中
CUR_EDGE_R Cursor DISCARDABLE "edge_r.cur"

在应用程序中加载:

const
  crEdgeR = TCursor(135);
 .
 .
  Screen.Cursors[crEdgeR] := LoadCursor(HInstance, 'CUR_EDGE_R');

那么,Windows为自定义光标添加阴影的方法是什么?

注意:我在互联网上看到的帖子建议创建两个版本的鼠标光标,一个带有一个没有阴影,并根据用户的设置加载适当的光标。这不是我正在寻找的解决方案。

1 个答案:

答案 0 :(得分:0)

为了在自定义光标下放置阴影,您只需使用Alpha通道(可实现半透明度)设计光标并将阴影绘制到位。您甚至可以使用Photoshop / GIMP(或任何其他功能强大的图形编辑器)生成带有“投影”效果的光标,将其另存为PNG,然后使用图标编辑器(如Microangello)将PNG转换为光标

据我了解,Windows Vista / 7附带的游标都没有设计为“平面”,使用一些系统效果来生成阴影。