0

我玩 WM6 的小但希望不错的应用程序。我注意到在屏幕上使用触控笔(充当鼠标)时没有触发 MouseUp 和 MouseDown。

这对我来说没关系,我的意思是我可以没有它。但是还有一些事情正在发生,我无法接受改变。

当使用手写笔在屏幕上绘画并在每个 MouseMove 事件中读取鼠标坐标时,我会得到一些东西(比如说 X 轴),例如:2、4、6、8、10、12 等(每秒一次)这同样发生在Y 轴。

换句话说,无论我移动手写笔的速度有多慢,我都不会得到像 2、3、4、5、6 等这样的坐标。使用这个坐标来绘制我不会得到很好的连续线,而是单独的点。

希望我已经说得够清楚了。

附言。我忘记了一件事。为了在屏幕上绘画,我使用了图片框和附加到这个图片框的位图。在位图上绘制时,除非我刷新图片框或执行类似的操作,否则我无法在屏幕上看到效果pictureBox.Image = bitmap;

我应该怎么做才能立即看到画点而不刷新整个图片框?

[编辑]

List<Point> array = new List<Point>();  // in the header of the class

private void pictureBox_Screen_MouseMove(object sender, MouseEventArgs e) //event handler body
{
     array.Add(new Point(e.X, e.Y));
}

如您所见,这是非常简单的例程。我已删除所有不必要的噪音以使其更清晰。

4

1 回答 1

0

如果您唯一的问题是您需要通过绘制鼠标移动中捕获的每个像素来绘制一条线,那么只需连接这些点就可以了。即使在“标准”应用程序中,如果用户快速移动鼠标,您也永远不会在 MouseMove 中获得每个点,因此您无法通过触控笔获得每个坐标这一事实应该不是问题。

于 2009-08-12T19:31:52.650 回答