- - PR -
ビット演算
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-10-31 21:23
初めまして。ダッチと申します。
VB.NET2003にてフォームのWndProcをオーバーライドし マウスのアップ・ダウン情報を取得しようとしております。 マウスのアップ・ダウンした際のメッセージは取得できるのですが、 その際のマウスの座標が上手く取得できません。 lParamの上位ビットにX座標 下位ビットにY座標があるのまでは分かったのですが、 どのようにして取り出したらいいのか分かりません。 よろしくお願いいたします。 |
|
投稿日時: 2005-10-31 21:47
And演算子とビットシフト演算子(>>)を組み合わせていけるんじゃないでしょうか。
|
|
投稿日時: 2005-10-31 21:51
一郎さん回答ありがとうございます。
下記コードよりx座標とy座標が取得できました。 Dim x As Integer = (m.LParam.ToInt32 And &HFFFF) Dim y As Integer = (m.LParam.ToInt32 >> 16) VB.NET2003で">>"が使えるとは知りませんでした。 無事解決できました。ありがとうございました。 |
|
投稿日時: 2005-10-31 21:52
Form.MouseDown イベント じゃダメなんだっけ?
あ、もちろん、上にあるコントロールが優先するけど。 _________________ |
|
投稿日時: 2005-10-31 22:13
マウスジェスチャをやろうと思い
フォームのWndProcをオーバーライドするやり方を取りました。 今気づいたのですが、 フォームの上にコントロールがあるとそのコントロールでマウスダウンをしても フォームのWndProcにマウスダウンメッセージが来ないことが分かりました。 フォームの上にコントロールがあってもフォームの上ならばWndProcにメッセージが来るものだと思い込んでいました。 やり方を考え直したいと思います。 |
1
