无法找到光标坐标

时间:2016-04-19 10:17:47

标签: c++ graphics cursor drawing picturebox

我正在完成一个绘图应用程序,用户在其中绘制一个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

1 个答案:

答案 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);