我正在完成一个绘图应用程序,用户在其中绘制一个pictureBox。一切都已完成,但我在找到光标位置时遇到了一些问题。
这是用于查找光标位置坐标的代码/命令。
PointF ^newPositionX = PointF(e->Location.X);
PointF ^newPositionY = PointF(e->Location.Y);
显示此错误 - > 错误C2440:'' :无法转换为' int'到'系统::绘图:: 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 :: Drawing :: PointF'到'浮动'
有任何帮助吗? :) TY
答案 0 :(得分:-1)
您尝试使用单个整数值初始化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);