1

如何将光标类型(手、箭头等)设为枚举(int)或位图?

它应该在全球范围内工作,而不仅仅是在应用程序的表单中。我相信,如果鼠标超出应用程序范围,Cursor.Current 将不起作用。我看过互操作 Win32 GetCursorInfo() 和 GetCursor(),但不明白如何使用它们来获取光标类型。

提前致谢。

4

1 回答 1

0

如果您可以获得光标位图,您可以轻松地将其与已知系统光标的标准位图进行比较。只需检查它们是否具有相同的尺寸 - 如果它们是相同的,则循环遍历像素并在任何不相等时退出。如果您能够遍历整个位图,并且所有像素都匹配,那么您就知道您有两个相同的光标。光标通常类似于 24x24,因此这不应该是一个巨大的性能问题 -可能有一种更快的方法来比较位图相等性,但这是您可能会问的另一个问题。

这种方法可能存在一些问题:

  • 光标可能是自定义光标(想想 Photoshop 的工具)
  • 光标可能是动画的
  • 光标在屏幕上移动时可能会迅速变化

作为附录,您希望通过此过程完成什么?您很可能没有考虑过一种完全正交的方法。

于 2009-09-29T00:26:30.577 回答