Нужен алгоритм передвижения картинки мышкой как в ACDSee
От: oduvan  
Дата: 18.07.05 05:32
Оценка:
есть форма, на ней есть объект с канвой, в нее прорисовывется картинка по размерам больше самого окна.

никак не могу сделать перемещении ее мышкой, трабла с координатами ну и ваще с алгоритом

хочу спросить вас, кто знает или где почитать инфу. или пример надыбать.

сделать элементарно можно по клавишам, т.е. курсором, а вот с помощью мышки перемещение картинки тут я в тупик попал.
Re: Нужен алгоритм передвижения картинки мышкой как в ACDSee
От: Reunion  
Дата: 18.07.05 07:03
Оценка:
Здравствуйте, oduvan, Вы писали:

O>есть форма, на ней есть объект с канвой, в нее прорисовывется картинка по размерам больше самого окна.


O>никак не могу сделать перемещении ее мышкой, трабла с координатами ну и ваще с алгоритом


O>хочу спросить вас, кто знает или где почитать инфу. или пример надыбать.


O>сделать элементарно можно по клавишам, т.е. курсором, а вот с помощью мышки перемещение картинки тут я в тупик попал.


А в чем разница: смотри на сколько сдвинулся указатель мыши и перемещай. Если dx > 0 — код как при нажатии кнопки вправо, dx < 0 — влево; dy > 0 — вниз, dy < 0 — вверх. Вроде ничего хитрого.
Re[2]: Нужен алгоритм передвижения картинки мышкой как в ACD
От: oduvan  
Дата: 19.07.05 03:52
Оценка:
Здравствуйте, Reunion, Вы писали:

R>А в чем разница: смотри на сколько сдвинулся указатель мыши и перемещай. Если dx > 0 — код как при нажатии кнопки вправо, dx < 0 — влево; dy > 0 — вниз, dy < 0 — вверх. Вроде ничего хитрого.


ну в принципе так и думал. но тут получится что сначала я перетаскиваю картинку, а потом она отрисовывается в нужных координатах. получается так.
Re[3]: Нужен алгоритм передвижения картинки мышкой как в ACD
От: Sergei I. Gorelkin Россия  
Дата: 19.07.05 06:32
Оценка: 1 (1)
Здравствуйте, oduvan, Вы писали:

O>Здравствуйте, Reunion, Вы писали:


R>>А в чем разница: смотри на сколько сдвинулся указатель мыши и перемещай. Если dx > 0 — код как при нажатии кнопки вправо, dx < 0 — влево; dy > 0 — вниз, dy < 0 — вверх. Вроде ничего хитрого.


O>ну в принципе так и думал. но тут получится что сначала я перетаскиваю картинку, а потом она отрисовывается в нужных координатах. получается так.


Тут нужно дополнительную точку завести. При нажатии кнопки мыши — запоминаем в ней координаты курсора. При получении WM_MOUSEMOVE — вычисляем разницу между текущим положением курсора и этой точкой, на полученное количество пикселей смещаем картинку, и потом опять координаты курсора запоминаем в дополнительной точке.
Еще уместно вызвать SetCapture при нажатии кнопки мыши и ReleaseCapture при отпускании — тогда курсор можно будет утащить за пределы окна.
Ну и рисование как таковое — отдельная тема, т.к. приходится добиваться отсутствия тормозов.

Успехов!
Re[4]: Нужен алгоритм передвижения картинки мышкой как в ACD
От: oduvan  
Дата: 19.07.05 06:46
Оценка:
в принципе всем спасибо, реализовал с dx, dy
хоть не в "реальном времени" фотка движется но тоже нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.