Тема: lineTo c++
Показать сообщение отдельно

  #8  
Старый 23.04.2010, 23:56
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
С нами: 10233548

Репутация: 1118


По умолчанию

Я полностью понял задание.

У вас есть исходные данные - координаты где была нажата левая кнопка.

Прямоугольник это простая фигура имеющая 4-е координаты (углы).

Для расчета прямоугольника достаточно знать две координаты - начальная и противоположная по диоганали

x1,y1 ---------------------- x2,y2


x,y ---------------------- x3,y3


x3,y3 = x2,y
x1,y1 = x,y2


и совершенно все равно куда у тебя ушла фигура от начальной точки - вверх или вниз.


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

Обработчик MouseMove вызывается каждый раз когда мышь передвигается хоть на пиксель.

Цитата:
LineTo как изменять размер во время движения не понимаю....
Только дорисовывать или зарисовать прошлую линию цветом фона и нарисовать новую.

Цитата:
помогите с цыклом который ето будет делать
Обработчика WinApi MouseMove и будет твоим циклом.

Могу предложить решение в лоб:

Как понимаю ты рисуеш линии на форме а я могу предложить кинуть на форму pictureBox и рисовать по нему.

Тупо в начале обработчика движения мыши делать pictureBox.clean() и прорисовывать прямоугольник по новой (правда мерцать может)


Мое сонное видение задачи
 
Ответить с цитированием