Я заканчиваю приложение для рисования, где пользователь рисует в pictureBox. Все завершено, но у меня есть некоторые проблемы с поиском позиции курсора.
Вот код / команда, чтобы найти координаты расположения курсора.
PointF ^newPositionX = PointF(e->Location.X);
PointF ^newPositionY = PointF(e->Location.Y);
Это показывает эту ошибку ->
ошибка C2440: »: невозможно преобразовать из ‘int’ в ‘System :: Drawing :: PointF’
Я пробовал несколько методов, даже пытался гуглить любые решения, но ничего. Если вы ответите, не могли бы вы написать код или опубликовать внешнюю ссылку с кодом? Я не настолько продвинут, что знаю, что именно делать, когда пишешь определение.
Кстати, это линия рисования, которая также имеет небольшую ошибку->
g->DrawLine(pero, oldPositionX, oldPositionY, newPositionX, newPositionY);
Здесь ошибка.
ошибка C2664: ‘void System :: Drawing :: Graphics :: DrawLine (System :: Drawing :: Pen ^, System :: Drawing :: Point, System :: Drawing :: Point)’: невозможно преобразовать аргумент 2 из ‘System :: Рисование :: PointF ‘, чтобы’ плавать ‘
Любая помощь? 🙂 TY
Здесь вы пытаетесь инициализировать PointF
с одним целочисленным значением:
PointF ^newPositionX = PointF(e->Location.X);
PointF ^newPositionY = PointF(e->Location.Y);
Но точка нуждается в двух координатах для инициализации. Вы должны сделать так:
PointF ^newPosition = PointF(e->Location.X, e->Location.Y);
Чтобы нарисовать линию:
g->DrawLine(pero, oldPositionX, oldPositionY, newPosition.X, newPosition.Y);
Если oldPosition
представлен PointF
также вы можете просто использовать:
g->DrawLine(pero, oldPosition, newPosition);
Для дополнительной информации https://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawline(v=vs.110).aspx
UPD:
Я не уверен, что вам нужно PointF
в этом случае. Попробуйте использовать интегральный Point
:
Point ^oldPosition = Point(posX, posY);
Point ^newPosition = Point(e->Location.X, e->Location.Y);
g->DrawLine(pero, oldPosition, newPosition);
Других решений пока нет …