Страница 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
Минус пока один. В других программах - тоже мой курсор :idied: . Надо ещё подумать. Может делать обратную подмену при потере фокуса, при получении фокуса опять включать свой?