• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2005 .NETでAccessのイベントをフックするDLLを作成したい)

VB2005 .NETでAccessのイベントをフックするDLLを作成

このQ&Aのポイント
  • VB2005 .NETでAccessのイベントをフックするDLLを作成し、Access2000のフォームをマウスホイールでスクロールさせる方法を解説します。
  • VBEに不具合があるため、VBAではなくDLLを作成することが推奨されています。VB 6.0でAccessのイベントをフックする方法については参考になる情報があります。
  • ただし、VBEを開いた状態でAccessフォームをスクロールさせるとイベントが無限ループする問題が発生します。この問題の解決方法についても説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

フックした関数で処理した場合 0以外の数値を返すようにしないとイベントが引き続き起きると思います If wParam.ToInt32 == WM_MOUSEWHEEL then   debugInt += 1   FireMouseWheel( MyMouseHookStruct.intDelta, debugInt )   ' このReturn文を追加します   Return 1 end if これで良いように思います マウスの設定によって複数回イベントが駆動される場合があります 回転量の取得ですが WH_MOUSEのコールバック関数の引数には乗って来ていないように思います PeekMessageなどで取得した MSG構造体のwParamなどから算出しないといけないかもしれません

irija_bari
質問者

お礼

おお!うまくいきました! わざわざ、あの長いソースを読んでいただきありがとうございます。m(_ _)m 本当に、感謝、感謝です。 回転量については、Access VBA 側で取得するソースを見つけたので、そちらを利用しています。(書き漏らしました。すみません。) ご丁寧に補足まで付けていただき、ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A