Здравствуйте!
64-bit операционная система с 64-bit версией офиса (хотя, особо пока без разницы, ибо прилагающая ниже ссылка на найденный пример также выдает безуспешный результат и в 32-bit системе).
Итак, есть подключенная надстройка, представляющая из себя отдельную вкладку на ленте и содержащая кнопку.
Хочется, чтобы при нажатии на эту кнопку внешний вид курсора менялся со стандартной левонаправленной вверх стрелки на, например, вид руки с вытянутым указательным пальцем.
Вполне стандартный курсор, который можно найти в каталоге "C:\WINDOWS\Cursors\aero_link_il.cur"
Найденный в интернете пример по ссылке: http://rusproject.narod.ru/winapi/l/loadcursorfromfile.html показал на необходимость применения функций API
LoadCursorFromFileA и
SetCursor.
Однако ни адаптация этих функций под операционную систему 64-bit, ни прямое применение кода примера в системе 32-bit к желаемому результату не привело.
Иные поиски в инете с моделированием различных вариантов запросов по данному вопросу также не пролили свет на решение проблемы.
Предварительный код получается таким:
Код для системы 64-bit:Declare PtrSafe Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As LongPtr
Declare PtrSafe Function SetCursor Lib "user32" (ByVal hCursor As LongPtr) As LongPtr
Sub proba()
Dim hCursor As LongPtr
hCursor = LoadCursorFromFile("C:\WINDOWS\Cursors\aero_link_il.cur")
If hCursor = 0 Then End
SetCursor hCursor
End Sub
Код для системы 32-bit:Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Declare PtrSafe Function SetCursor Lib "user32" (ByVal hCursor As LongPtr) As Long
Sub proba()
Dim hCursor As Long
hCursor = LoadCursorFromFile("C:\WINDOWS\Cursors\aero_link_il.cur")
If hCursor = 0 Then End
SetCursor hCursor
End Sub
Кто-нибудь сможет подсказать, как добиться желаемого результата?