2009-08-12 42 views
0

私はWM6のための小さいながらもうまくいっていいアプリで遊んでいます。 画面上でスタイラス(マウスの役割を果たす)を使って遊んでいるときにMouseUpとMouseDownがトリガーされていないことに気付きました。C#WM6とマウス移動イベント

それは私にとっては大丈夫です。私はそれなしで暮らすことができます。 しかし私は変化のために生きていけない何かが起こっています。

スタイラスを使用して画面にペイントし、MouseMoveイベントが発生するたびにマウスの座標を読み取ると、2,4,6,8,10,12など(毎秒1回) これはY軸に対しても同じことが起こります。

言い換えれば、私はスタイラスを動かすにしても、2,3,4,5,6などの座標は決して得られません。 この座標を使ってペイントすると、良い連続線は得られません。

うまくいけば、私は自分自身を十分に明確にしました。

ps。私は一つのことを忘れていた。 画面にペイントするには、このpictureBoxに添付されたpictureBoxとビットマップを使用します。 私はピクチャをリフレッシュしたりpictureBox.Image = bitmap;

ような何かを、私は全体のPictureBoxを更新せずに、すぐに塗装ドットを見るために何をすべき場合を除き、ビットマップ上の塗料が、私は、画面上のevectを見ることができませんか?

[編集]

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)); 
} 

あなたが見ることができるように、それは非常に単純なルーチンです。私はそれをもっと明確にするために、すべての不要なノイズを削除しました。

+0

イベントまでの配線方法を示すコードを投稿できますか? 私はこれをやったことがあり、うまくいきました。ここで形成している –

+0

は完全にねじ込まれた男です。あなたが得るものは、エディタウィンドウに表示されるものとは異なります。誰かがハンドラを編集してより明確にすることができれば感謝します。 – Mariusz

+0

@aristo次回の自分自身を助けてください。[こちらを読んでください] –

答えて

0

唯一の問題は、マウスの動きで捕捉した各ピクセルをペイントして線を描く必要がある場合は、点を接続して設定する必要があることです。 「標準」アプリであっても、ユーザーがマウスをすばやく動かすと、MouseMoveの各点が決して得られないので、スタイラスですべての座標を取得できないということは問題ではありません。

+0

こんにちはエド、私はWM6でMouseUp/Downイベントを経験していないことを覚えておいてください。この場合、私はスタイラスがいつスクリーンから取り出されるのか分かりません。ユーザーが絵を描いていることを私に通知する唯一の方法はMouseMoveイベントです。 – Mariusz

+0

もう1つのことは、WM6 OSに組み込まれている書き込み認識では、ゆっくりとペイントして、座標が完全に正確であることがわかります... – Mariusz

関連する問題