- - PR -
VB2005のピクチャボックスでの画像ファイルの座標取得
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-09-04 14:30
ひとまず、件名については、解決しました。ぶさいくろうさん、さかもとさん、その他の皆さん、ありがとうございました。厚くお礼申し上げます。
| ||||||||
|
投稿日時: 2006-09-04 17:57
普通は、ディスプレイの左上からの、その時点でカーソルがある位置、と考えればいいと思います。
等しいとは限らないですよね。PictureBoxがFormの左上にぴったりくっついていれば 大体同じになると思いますが。それでもタイトルバーとかあるし。 | ||||||||
|
投稿日時: 2006-09-05 09:52
p_x = Me.Location.X
p_y = Me.Location.Y MessageBox.Show(p_x, "", MessageBoxButtons.OK) MessageBox.Show(p_y, "", MessageBoxButtons.OK) p_x = Me.Location.X + PictureBox1.Location.X p_y = Me.Location.Y + PictureBox1.Location.Y MessageBox.Show(p_x, "", MessageBoxButtons.OK) MessageBox.Show(p_y, "", MessageBoxButtons.OK) value = Windows.Forms.Cursor.Position MessageBox.Show(e.X, "", MessageBoxButtons.OK) MessageBox.Show(e.Y, "", MessageBoxButtons.OK) MessageBox.Show(value.X - Cursor.Size.Width, "", MessageBoxButtons.OK) MessageBox.Show(value.Y - Cursor.Size.Height, "", MessageBoxButtons.OK) MessageBox.Show(Cursor.Size.Width, "", MessageBoxButtons.OK) MessageBox.Show(Cursor.Size.Height, "", MessageBoxButtons.OK) MessageBox.Show(value.X, "", MessageBoxButtons.OK) MessageBox.Show(value.Y, "", MessageBoxButtons.OK) とした場合、 154,203 197,243 2,1 171,242 32,32 203,274 です。もしcursor.positionが、その時のマウスの位置のx座標とマウスの位置のy座標+マウスの縦の長さ、とすると y座標は、274-32=242で、243+1=244にならない。x座標も、203で197+2=199にならない。 べるさんのおっしゃるように、e.x,e.yの値と、Me.Location、PictureBox1.Location、Windows.Forms.Cursor.Positionの座標系は異なると考えるしかないのでしょうか? | ||||||||
|
投稿日時: 2006-09-05 10:25
考えてみれば、ピクチャボックスや、テキストボックスは大きさが変わるもので、コントロールの座標系とは別であるのは、当然ですね。
| ||||||||
|
投稿日時: 2006-09-05 11:17
まだ続いてたの?すげーなー(笑
| ||||||||
|
投稿日時: 2006-09-10 13:20
http://rd.vector.co.jp/vpack/browse/person/an043035.html
|