Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   lineTo c++ (https://forum.antichat.xyz/showthread.php?t=198570)

Besi 23.04.2010 15:16

lineTo c++
 
LineTo как изменять размер во время движения не понимаю....
LineTo(m_point.x+X,m_point.y+Y)
однако как зделать так чтобы при движении X и Y увеличивались не понимаю
если кто поможет понять как прописать такой цыкл буду благодарен

нада так чтобы при движении мышки на 1 координату в любую сторону
x и y изменялись в нужную мне сторону

1 раз ето я прорисовываю (появляется точка как мне нада) но мне нада обновлять ету фигуру при движении
помогите с цыклом который ето будет делать

Besi 23.04.2010 21:05

а можно апчик) ведь ето важно для меня)

.acme 23.04.2010 21:47

http://www.z90.ru/forum/index.php - Форум Экстрасенсов и Экстрасенсорики.

Для начала скажи опиши ситуацию детально.

Besi 23.04.2010 22:22

1. Створити Windows-додаток із структурою документ/вид, який має стандартне меню та па-нель інструментів. При натиснення лівої кнопки миші у вікні виду в координатах курсору з’являється точка. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника, ліва верхня вершина якого знаходиться в тих самих координатах, де було натиснуто ліву кнопку миші. При відпусканні кнопки миші прямокутник перетворю-ється у лінію і виводиться повідомлення про отриману фігуру. Повторне натиснення кнопок миші закриває вікно повідомлення і повторює раніше означені операції. У вікні „About program” записана умова задачі та прізвище автора програми

понятно теперь
Цитата:

а. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника, ліва верхня вершина якого знаходиться в тих самих координатах, де було натиснуто ліву кнопку миші.
как зделать так чтобы он расширялся?

POS_troi 23.04.2010 22:45

Mouse_Move - в обработчике отрисовываеш прямоугольник используя координаты мыши.

Погугли на тему "%ЯзыкПрограммирования% рисование фигуры"

Если тупо подойти то в обработчике тупо перерисовываеш прямоугольник используя координыты верхней точки (гда нажали кнопку) и координаты нижней точки (где в данный момент мышка, обработчика даст тебе циферку)

Besi 23.04.2010 23:22

POS_troi
задание перечитайте)
Цитата:

. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника,
и ваша фраза
Цитата:

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

gisTy 23.04.2010 23:25

напиши задание по-русски, а то я нормально прочитать не могу.. начинаю смеяться

POS_troi 23.04.2010 23:56

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

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

Прямоугольник это простая фигура имеющая 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() и прорисовывать прямоугольник по новой (правда мерцать может)


Мое сонное видение задачи ;)


Время: 17:19