Самый большой размер Windows Cursor - PullRequest
2 голосов
/ 20 января 2010

У меня есть курсор, размер которого 128х128, но когда я использовал LoadCursor, чтобы загрузить и показать его, он имеет только 32х32 Какой API может сделать это правильно? Кажется, MS изменить его размер. Спасибо.

Ответы [ 3 ]

3 голосов
/ 20 января 2010

Windows XP не содержит системных курсоров, размер которых превышает 32x32. (Если бы были включены большие курсоры, они были бы растянуты до 32x32, когда стандартные API загружают курсоры.)

Для систем с высоким разрешением Windows XP настроила значения SM_CXCURSOR и SM_CYCURSOR на 64x64 пикселей. Эта регулировка размера предотвращает практически полное исчезновение указателя мыши, поскольку он слишком мал для эффективного использования. Хотя другие аспекты системы масштабируются с помощью DPI, указатель мыши не масштабируется. Microsoft не пытается установить независимый от DPI размер указателя мыши.

Система также предоставляет функцию API SetSystemCursor, которую можно использовать для изменения системного курсора для определенных категорий. Вы можете использовать эту функцию для установки курсора любого размера. Тем не менее, вы должны вызывать функцию программно, и вы можете использовать ее только для установки курсора для определенной категории. Вы не можете использовать его, чтобы сделать все курсоры в системе одинакового размера.

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

2 голосов
/ 20 января 2010

Не используйте LoadCursor, вместо этого используйте LoadImage ().

1 голос
/ 20 января 2010

SM_CXCURSOR на SM_CYCURSOR - единственный размер курсора, который система может использовать в настоящее время. Используйте GetSystemMetrics, чтобы узнать эти значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...