Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > изменение курсора


Автор: Ferrisgeneral 25.10.2010, 14:53
как лучше всего в DirectX реализовать изменение вида курсора при достяжении края окна ?
может курсор надо использавить стандартные курсоры или в виде спрайта или еще как-то ?
надо проверять WinAPI'шными функциями положения мышки в окне чтобы определить момент смены курсора ?

Автор: BorisVorontsov 26.10.2010, 01:24
Оконный вывод D3D не меняет на своей области вид курсора, коий, кстати, определяется классом окна
Можешь задать свой вопрос более конкретно?

Автор: Ferrisgeneral 26.10.2010, 12:03
видел например пару реализаций где курсор заменяется WinAPI'шными функциями, типа ShowCursor, LoadCursor, SetCursor ... , ну и реализыции где курсор отрисовывали в поле окна в виде спрайта с текстуркой курсора.
Какой вариант предпочтительнее использовать и в каких ситуациях.

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

Автор: BorisVorontsov 26.10.2010, 12:39
Цитата(Ferrisgeneral @  26.10.2010,  12:03 Найти цитируемый пост)
Какой вариант предпочтительнее использовать и в каких ситуациях.

Пожалуй, вариант со спрайтом
Во-первых, потому, что проще нарисовать требуемый курсор, во-вторых, проще выполнить взаимодействие курсора с игрой -- сложная анимация, плавные превращения из одного курсора в другой и т.д.
Но DX имеет собственный механизм замещения курсора, IDirect3DDevice9::SetCursorProperties, так что использовать функции User32 несколько странно

Автор: Ferrisgeneral 26.10.2010, 13:35
спасибо за разъеснение.  smile 
про SetCursorProperties даже и не знал. А с WinAPI'шными функциями и дело не хотелось иметь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)