Краткий вопрос
Можно ли изменить системный курсор для выбранного приложения (Visio 2010), используя user32.dll
?
Фон
Я пытаюсь заставить курсор отображаться только в виде стрелки, или, что еще лучше, переназначить указатель «песочных часов» на указатель стрелки, чтобы, когда мое приложение Visio «ждет», оно всегда показывало стрелку.До сих пор я был в состоянии загрузить user32.dll
и вызвать SetSystemCursor
, LoadCursorA
и ShowCursor
.Из всех сделанных звонков только ShowCursor
работает как положено.
Проблема вполне может состоять в том, что я не до конца понимаю, что на самом деле делают LoadCursor
и SetSystemCursor
.Я связал лучшую документацию, которую смог найти, которой в лучшем случае не хватает IMO.
Заключительные мысли
Есть ли лучший способ сделать это, чем использовать user32.dll
API?Обратите внимание, что Visio 2010, как я могу найти, вообще не контролирует указатели мыши.
Follow Up
Проверьте этот пост для точного поведения, которое я пытаюсь обойти.Обратите внимание, что я не пытаюсь скрыть приложение от показа, что оно занято.Я пытаюсь избавиться от мерцания песочных часов при каждом программном изменении данных формы Visio. Здесь - это ссылка на пример Visio, который я упоминаю в сообщении VisioGuy, вы должны быть участником сайта для просмотра вложений.
Изначально я не собирался использовать LoadCursor
с SetSystemCursor
, я связал их только из-за документации, найденной на Pinvoke.net (для SetSystemCursor
).Я не видел документацию MSDN для SetSystemCursor
.Спасибо за совет по Pinvoke ... и я не знаю, почему я не поднял MSDN для них обоих.
По общему признанию, я не играл много с системными DLL.Моя основная база знаний посвящена встроенным системам и независимым от ОС языкам (например, Python), поэтому совет о SetSystemCursor
, вызывающем глобальные системные ошибки, является той информацией, которая мне действительно нужна.