找不到光标坐标
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);
我正在完成一个绘图应用程序,用户可以在其中绘制图片框。一切都已完成,但我在查找光标位置时遇到了一些问题。
这里是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);