2010-01-20 6 views
2

J'ai un curseur ce que la taille de taille 128x128, mais quand j'ai utilisé LoadCursor pour charger et montrer, il a seulement 32x32. Quelle API peut le faire correctement? Il semble que MS le redimensionne. Merci.La plus grande taille de Windows Cursor

Répondre

3

Windows XP n'inclut aucun curseur système de taille supérieure à 32x32. (Si des curseurs plus grands étaient inclus, ils seraient étendus à 32x32 lorsque les API standard chargeraient les curseurs.)

Pour les systèmes à haute résolution, Windows XP a ajusté les valeurs SM_CXCURSOR et SM_CYCURSOR à 64x64 pixels. Ce réglage de la taille permet d'éviter que le pointeur de la souris ne disparaisse pratiquement car il est trop petit pour être utilisé efficacement. Bien que les autres aspects de l'échelle du système avec DPI, le pointeur de la souris ne se met pas à l'échelle. Microsoft n'essaye pas d'imposer une taille indépendante du DPI pour le pointeur de la souris.

Le système fournit également la fonction API SetSystemCursor que vous pouvez utiliser pour modifier le curseur système pour des catégories spécifiques. Vous pouvez utiliser cette fonction pour définir un curseur de n'importe quelle taille. Toutefois, vous devez appeler la fonction par programme et vous pouvez uniquement l'utiliser pour définir un curseur pour une catégorie spécifique. Vous ne pouvez pas l'utiliser pour que tous les curseurs du système aient la même taille.

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

1

SM_CXCURSOR par SM_CYCURSOR est la seule taille de curseur que le système peut actuellement utiliser. Utilisez GetSystemMetrics pour trouver ces valeurs.

2

Ne pas utiliser LoadCursor, utilisez LoadImage() à la place.

Questions connexes