2008-12-11 75 views
1

我在Delphi 7中编写了一个Windows屏幕录制应用程序,并希望知道鼠标指针在我的应用程序中何时发生变化(如从正常指针调整大小指针等)。如何判断鼠标指针图标是否改变

目前我正在做的是每次鼠标移动时(和计时器上)将鼠标指针绘制到内存中的位图上,并将它与上一次绘制的位图进行像素逐像素比较。

尽管比较相当快(约2-5ms),因为它经常发生(每次鼠标移动),它会相加。我认为必须有一个更快更简单的方法!

回答

2

你有一个光标的句柄,对吧?如果它与之前的处理值相同,那么我认为假设它看起来相同也是合理的。如果光标看起来不同,它将具有不同的句柄值。

对于标准系统游标,这当然应该是正确的。如果您正在录制的应用程序在运行时创建了新的游标,那么也许是它将能够更新当前游标的外观,而不实际在OS中创建新的游标对象(并因此保持相同的句柄值) ,但我不认为这很可能,尤其是因为SetCursor在光标未更改时立即退出,并且我预计API函数不会执行您试图避免的图形比较。它只是比较HCursor的值。

+0

事实上,你似乎是正确的,欢呼! :) – CodeAndCats 2008-12-11 07:04:16