Страница 1 из 1
Анимированный курсор
Добавлено: 29 Ноябрь 2015, 18:50
kreator
А setcursor не поддерживает анимированные курсоры (с расширением .ani)? Или формат определённый нужен? Или как всё-таки показать свой анимированный курсор.
Анимированный курсор
Добавлено: 30 Ноябрь 2015, 1:47
Admin
Вот пример чей то.
Анимированный курсор
Добавлено: 30 Ноябрь 2015, 8:53
Admin
При загруженном таким методом курсоре, мушка перестает работать.
Пока не выгрузим курсор. Так что костыль.
Анимированный курсор
Добавлено: 30 Ноябрь 2015, 12:33
kreator
Посмотрел пример - действительно дурость какая-то. Вообще я хотел стандартный подменить на время выполнения программы. Надо плотнее в Инете поискать, может современные способы какие есть.
Анимированный курсор
Добавлено: 13 Декабрь 2015, 16:52
kreator
Дошли руки до темы. Есть Винапишная функция SetSystemCursor. С её помощью получается то, что надо:
Код: Выделить всё
GLO:CursorFile = '..\media\j.ani'
GLO:CursorHandle = LoadCursorFromFile(GLO:CursorFile)
if GLO:CursorHandle
i# = SetSystemCursor(GLO:CursorHandle, OCR_WAIT)
else
stop('Ошибка загрузки курсора')
end
Теперь везде при вызове "setcursor(CURSOR:Wait)" будет мой курсор.
При выходе из программы - не забыть вернуть курсор на место и выгрузить свой курсор. Я пока на первых порах решил так:
Код: Выделить всё
if GLO:CursorHandle
GLO:CursorFile = clip(GLO:WinDir) & '\Cursors\aero_busy.ani'
GLO:OldCursorHandle = LoadCursorFromFile(GLO:CursorFile)
i# = SetSystemCursor(GLO:OldCursorHandle, OCR_WAIT)
i# = DestroyCursor(GLO:CursorHandle)
end
Минус пока один. В других программах - тоже мой курсор

. Надо ещё подумать. Может делать обратную подмену при потере фокуса, при получении фокуса опять включать свой?