Определить размер курсора выбранной темы

Я хочу показать пользовательский курсор мыши в размере, который соответствует текущим настройкам (на панели управления) пользователя.

Выполнение Cursor.Current.Size всегда возвращает 32x32 (как я полагаю, они всегда технически, но не визуально), независимо от настроек панели управления, которые правильно отражаются при появлении курсора меньшего или большего размера.

Так как мне определить размер?

1 ответ

Решение

Для того, что я обнаружил, вы должны получить иконку для курсора (возможно, с некоторым win32-API), а затем использовать ICONINFO, чтобы узнать битовую карту маски. После этого вы можете проверять пиксели значка и считать до тех пор, пока не найдете прозрачный цвет и таким образом не выясните реальный размер.

Я видел пару ответов на других сайтах, которые указывают на это направление, но я не могу найти полное решение, только фрагменты здесь и там..

На этот вопрос о стековом потоке есть хороший ответ о растровых масках, используемых курсором, и оттуда, возможно, вы сможете найти свой путь к решению.

C# - захват изображения курсора мыши

Этот вопрос старый, я видел его на других сайтах с 2003 года, поэтому, если вы добьетесь успеха, тогда, пожалуйста, оставьте ответ здесь, многие будут рады найти решение этого вопроса.

Другие вопросы по тегам