找不到光标坐标

Cant find cursor coordinates

我正在完成一个绘图应用程序,用户可以在其中绘制图片框。一切都已完成,但我在查找光标位置时遇到了一些问题。

这里是code/command寻找光标所在位置的坐标

PointF ^newPositionX = PointF(e->Location.X);

PointF ^newPositionY = PointF(e->Location.Y);   

显示这个错误-> 错误 C2440:“”:无法从 'int' 转换为 'System::Drawing::PointF'

我尝试了几种方法,甚至尝试了 google 任何解决方案,但都没有。如果您回答,能否请您编写代码或 post 外部 link 代码?我还没有高级到知道在编写定义时究竟该做什么。

顺便说一下,这个画线也有一点小错误->

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' 转换为 'float'

有什么帮助吗? :) 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);