0
如何將枚舉類型(手形,箭頭等)作爲enum(int)或Bitmap?如何獲取全局鼠標光標類型?
它應該在全球範圍內工作,不僅在應用程序的形式。我相信,如果鼠標不在應用程序範圍內,則Cursor.Current不起作用。我查看了Win32 GetCursorInfo()和GetCursor()之間的交互,但不明白如何使用它們來獲取遊標類型。
在此先感謝。
如何將枚舉類型(手形,箭頭等)作爲enum(int)或Bitmap?如何獲取全局鼠標光標類型?
它應該在全球範圍內工作,不僅在應用程序的形式。我相信,如果鼠標不在應用程序範圍內,則Cursor.Current不起作用。我查看了Win32 GetCursorInfo()和GetCursor()之間的交互,但不明白如何使用它們來獲取遊標類型。
在此先感謝。
如果您可以獲取光標位圖,則可以輕鬆地將其與已知系統光標的標準位圖進行比較。只需檢查並查看它們是否具有相同的尺寸 - 如果它們是,則循環顯示像素,如果任何不相同,則退出。如果你能夠遍歷整個位圖,並且所有像素匹配,那麼你知道你有兩個相同的光標。遊標通常是24x24的東西,所以這不應該是一個巨大的性能問題 - 有可能是比較位圖平等比較快的方式,但這是你可能會問的另一個問題。
有這種方法的一些可能出現的問題:
作爲一個附錄,你希望在這個過程中完成什麼?很可能有一個完全正交的方法,你可能沒有考慮過。
澄清:您希望能夠確定用戶的光標是什麼。不管它在哪裏?當其他程序使用自定義光標時,您可能會遇到問題。 – 2009-09-28 22:40:49
啊,這就是爲什麼Cursor.Current或GetCursorInfo()可能沒有光標類型信息。好點子!至少,你可以把當前的位圖,並將它們與已知的光標位圖進行比較呢?怎麼樣?是的,無論用戶的光標在哪裏,它都可以工作。 – 2009-09-28 23:05:09