名前 題名 ▼ Mr.XRAYさん > > あっと,そんな面倒なことをしなくても,OnMouseWheelか > > MouseWheelHandlerで実装できそうです. > > というか,OnEnterとかは,直接関係ないですね.ハハハッ. > これ結構ややこしそうです. > WM_MOUSEWHEELイベントは,アクティブなコントロールに対してだけしか > 発生,動作しませんから, > > >マウスのホイールを回すとマウスポインタがある方のコントロールがスクロー > >ルします。 > > の機能は,ホイールの作業量分たけ,スクロールバーにメッセージを > 送って処理しているのではないかと思います. > とすると,こんな手順になるかと思います. > > 1. マウス,つまりカーソルがある位置を検出. > MouseWheelHandlerか,OnMouseWheelイベント > 2. マウスホイールの作業量,奥へか,手前かと,その移動量分を検出 > 3. スクロールバーが表示されていれば,その分だけスクロールするメッセージ > を送る > > だそくですが,1.は,コントロールのプロパティやイベントの引数で取得でき > ますが,個人的にはAPIを使った方が,直接スクリーン座標値が取得できるので > 好きです. > > var > APos : TPoint; > RectMemo1 : TRect; > RectMemo2 : TRect; > begin > GetCursorPos(APos); > GetWindowRect(Memo1.Handle, RectMemo1); > GetWindowRect(Memo2.Handle, RectMemo2); > > //カーソルがMemo1内にある場合 > if PtInRect(RectMemo1, APos) then begin > > てな感じです.ということは, > > > こんなこと知らないのはもしかして私だけ? > > 「とんでもはっぷん,歩いてじゅっぷん」ですね. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link