2008-12-11 104 views
1

我在Delphi 7中編寫了一個Windows屏幕錄製應用程序,並希望知道鼠標指針在我的應用程序中何時發生變化(如從正常指針調整大小指針等)。如何判斷鼠標指針圖標是否改變

目前我正在做的是每次鼠標移動時(和計時器上)將鼠標指針繪製到內存中的位圖上,並將它與上一次繪製的位圖進行像素逐像素比較。

儘管比較相當快(約2-5ms),因爲它經常發生(每次鼠標移動),它會相加。我認爲必須有一個更快更簡單的方法!

回答

2

你有一個光標的句柄,對吧?如果它與之前的處理值相同,那麼我認爲假設它看起來相同也是合理的。如果光標看起來不同,它將具有不同的句柄值。

對於標準系統遊標,這當然應該是正確的。如果您正在錄製的應用程序在運行時創建了新的遊標,那麼也許是它將能夠更新當前遊標的外觀,而不實際在OS中創建新的遊標對象(並因此保持相同的句柄值) ,但我不認爲這很可能,尤其是因爲SetCursor在光標未更改時立即退出,並且我預計API函數不會執行您試圖避免的圖形比較。它只是比較HCursor的值。

+0

事實上,你似乎是正確的,歡呼! :) – CodeAndCats 2008-12-11 07:04:16