Windows Cursor的最大大小

时间:2010-01-20 10:31:13

标签: windows winapi cursor

我有一个大小为128x128的游标,但是当我使用LoadCursor加载并显示它时,它只有32x32。哪个API可以正确使用?似乎MS调整了它。感谢。

3 个答案:

答案 0 :(得分: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 :(得分:2)

不要使用LoadCursor,而是使用LoadImage()。

答案 2 :(得分:1)

SM_CXCURSOR之前的SM_CYCURSOR是系统当前可以使用的唯一游标大小。 使用GetSystemMetrics找出这些值。