我在Delphi 7中编写了一个Windows屏幕录制应用程序,并希望知道鼠标指针在我的应用程序中何时发生变化(例如,从正常的指针指向resize的指针等)。
目前我正在做的是每当鼠标移动(和一个计时器)上,将鼠标指针绘制到内存中的位图上,并将其与我绘制的最后一个位图进行逐像素比较。
虽然比较是相当快的(大约2-5ms),因为它经常发生(每只鼠标移动),它加起来。 我认为必须有一个更快,更简单的方法!
你有一个光标的句柄,对吧? 如果它与之前的处理值相同,那么我认为它也是合理的。 如果光标看起来不同,它将有不同的句柄值。
对于标准系统游标来说,这当然是对的。 如果正在录制的应用程序在运行时创建新的游标,那么也许它可以更新当前游标的外观,而无需在OS中创建新的游标对象(从而保持相同的句柄值),但我不认为这是可能的,尤其是因为SetCursor
在光标没有改变时立即退出,我期望API函数不会做你想要避免的图形比较。 它只是比较HCursor
值。