【发布时间】:2008-12-11 05:50:00
【问题描述】:
我正在使用 Delphi 7 为 Windows 编写屏幕录制应用程序,并希望知道鼠标指针何时在我的应用程序中发生变化(例如从普通指针变为调整大小指针等)。
目前我正在做的是每次鼠标移动(以及在计时器上)时将鼠标指针绘制到内存位图上,并与我绘制的最后一个位图进行逐个像素的比较。
虽然比较相当快(大约 2-5 毫秒),因为它经常发生(每次鼠标移动)它加起来。我认为必须有一种更快、更简单的方法!
【问题讨论】:
我正在使用 Delphi 7 为 Windows 编写屏幕录制应用程序,并希望知道鼠标指针何时在我的应用程序中发生变化(例如从普通指针变为调整大小指针等)。
目前我正在做的是每次鼠标移动(以及在计时器上)时将鼠标指针绘制到内存位图上,并与我绘制的最后一个位图进行逐个像素的比较。
虽然比较相当快(大约 2-5 毫秒),因为它经常发生(每次鼠标移动)它加起来。我认为必须有一种更快、更简单的方法!
【问题讨论】:
你有光标的句柄,对吧?如果它与您之前的句柄值相同,那么我认为假设它看起来也一样是合理的。如果光标看起来不同,它将具有不同的句柄值。
对于标准系统游标,这当然应该是正确的。如果您正在录制的应用程序正在运行时创建新光标,那么 也许 它可以更新当前光标的外观,而无需在操作系统中实际创建新光标对象(从而保持相同的句柄值),但我认为这不太可能,特别是因为SetCursor 在光标没有改变时立即退出,并且我希望 API 函数不会进行您试图避免的图形比较,任何一个。它只是比较 HCursor 的值。
【讨论】: