2010-01-20 51 views
2

我有一個大小爲128x128的遊標,但是當我使用LoadCursor加載並顯示它時,它只有32x32。哪個API可以正確使用?似乎MS調整它。謝謝。Windows遊標的最大尺寸

回答

3

Windows XP不包含任何大於32x32的系統遊標。 (如果包含較大的遊標,則當標準API加載遊標時,它們將被拉伸至32x32)。

對於高DPI系統,Windows XP已將SM_CXCURSOR和SM_CYCURSOR值調整爲64x64像素。這種尺寸調整是爲了防止鼠標指針實際上消失,因爲它太小而無法有效使用。儘管系統的其他方面可以通過DPI進行擴展,但鼠標指針不會縮放。 Microsoft不會嘗試爲鼠標指針強制實施與DPI無關的大小。

系統還提供了SetSystemCursor API函數,您可以使用它來更改特定類別的系統光標。您可以使用此功能設置任何尺寸的光標。但是,必須以編程方式調用該函數,並且只能用它爲特定類別設置光標。您不能使用它來使系統上的所有遊標具有相同的大小。

http://support.microsoft.com/kb/307213

1

SM_CXCURSOR by SM_CYCURSOR是系統當前可以使用的唯一光標大小。 使用GetSystemMetrics找出這些值。

2

不要使用使用LoadCursor,使用的LoadImage()來代替。