Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
VB6でマウススクロールをマウスクリックとして扱う方法
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30600#CommentId84459
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2021/4/22 22:28:09
> マウススクロールをしたら
ここでいう『マウススクロール』という用語についてですが、
マウスによるスクロールバー操作のことを意味しているのでしょうか。
あるいは、マウスのホイール操作を意味しているのでしょうか。
また、現状の拡大縮小操作は、どの位置を基準座標として拡大されるのでしょうか。
右クリックした地点を中心として拡縮されるのか、それとも、右クリック座標を問わず、
現在の左上座標を基準としているのかといった点も気がかりです。
> イベントを変換してするみたいな動き
該当の ocx が、ウィンドウレスコントロールなのか、
それとも HWND を持つものなのかで変わってきます。
ウィンドウレスなどで、Windows Message をうまく拾えない状況であれば、
DirectInput を用いて、マウス操作をイベントとして受け取という手法があります。
VB6 から使えるライブラリは、DirectX 8 世代のものなので、
現在では入手が困難かもしれませんけれどね。
http://hanatyan.sakura.ne.jp/patio/read.cgi?no=228
一方、HWND が取得できる場合には、該当ウィンドウをサブクラス化してみてください。
先の『マウススクロール』とやらがスクロールバー操作を指しているのであれば、
WM_VSCROLL / WM_HSCROLL メッセージが飛んできている可能性がありますし、
ホイール操作であれば WM_MOUSEWHEEL メッセージが飛んでいるかもしれません。
DirectInput の通知にせよ、ウィンドウのサブクラス化によるメッセージ通知にせよ、
『マウススクロール』の操作を拾えるようであれば、該当の Windows Message が飛んできた時に、
右クリック処理を代わりに呼び出すようにします。
なお、右クリック相当の呼び出しにするには、通知メッセージを送って騙す方法や、
SendInput API でエミュレーションする方法などが思い当たりますが、
それらでうまくいくかどうかは、実際の環境で試さないと分かりませんし、
具体的なソースを提示することもできないです。