我有一个大小为128×128的游标,但是当我使用LoadCursor加载并显示它时,它只有32×32。 哪个API可以正确使用? 看来MS调整它。 谢谢。
Windows XP不包含任何大于32×32的系统游标。 (如果包含更大的游标,则当标准API加载游标时,它们将被拉伸至32×32。)
对于高DPI系统,Windows XP已将SM_CXCURSOR和SM_CYCURSOR值调整为64×64像素。 这种尺寸调整是为了防止鼠标指针实际上消失,因为它太小而不能有效地使用。 尽管系统的其他方面使用DPI进行缩放,但鼠标指针不能缩放。 Microsoft不会尝试为鼠标指针强制实施与DPI无关的大小。
系统还提供了SetSystemCursor API函数,您可以使用它来更改特定类别的系统光标。 您可以使用此功能设置任意大小的游标。 但是,您必须以编程方式调用函数,并且只能用它来为特定类别设置光标。 您不能使用它来使系统上的所有游标具有相同的大小。
不要使用LoadCursor,而应使用LoadImage()。
SM_CXCURSOR
的SM_CYCURSOR
是系统当前可以使用的唯一光标大小。 使用GetSystemMetrics
找出这些值。