【问题标题】:Cant find cursor coordinates找不到光标坐标
【发布时间】:2016-08-11 11:01:09
【问题描述】:

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

这是查找光标位置坐标的代码/命令。

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)' : 无法从 'System 转换参数 2 ::Drawing::PointF' to 'float'

有什么帮助吗? :) 泰

【问题讨论】:

  • 你为什么尝试将单个坐标投射到一个点上?
  • 画线(笔、点 1、点 2)对我不起作用。我知道为什么

标签: c++ graphics cursor drawing picturebox


【解决方案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

更新:

我不确定在这种情况下您是否需要 PointF。尝试使用积分Point

Point ^oldPosition = Point(posX, posY);
Point ^newPosition = Point(e->Location.X, e->Location.Y);
g->DrawLine(pero, oldPosition, newPosition);

【讨论】:

  • 所以你想让我做这样的事情吗?
  • 就像我有 Drawline(pero, oldPosition, e->Location) 但它不工作
  • 像什么?实际上我不太确定变量oldPositionXoldPositionY。你如何声明它们? UPD:是的Drawline(pero, oldPosition, e->Location)。您所说的“没有以某种方式工作”是什么意思?
  • PointF oldPositionY, oldPositionX, newPositionX, newPositionY;
  • ->下面有一条红线...我不记得确切的错误,但它与光标的坐标类似
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多