• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1 ページスクロール(WM_VSCROLL )が連続で来る)

VC++での1ページスクロール時にツマミが自動で移動する現象について

このQ&Aのポイント
  • Visual Studio .NET 2003でVC++の開発をしている際に、CViewクラスを基底にした子ウィンドウの1ページスクロール(WM_VSCROLLのSB_PAGEDOWN/SB_PAGEUP)時に、スクロールバーのツマミの上下部分をクリックすると、ツマミがマウスカーソルの位置に自動で移動しながらスクロールし続ける現象が発生しています。
  • 正常動作時にはWM_VSCROLL(SB_PAGEDOWN/SB_PAGEUP)の後に必ずWM_VSCROLL(SB_ENDSCROLL)メッセージが来ますが、異常動作時にはSB_PAGEDOWN/SB_PAGEUP)メッセージが連続して来ます。ツマミがマウスカーソルの位置に来るとWM_VSCROLL(SB_THUMBPOSITION)メッセージに変わり、それに対するWM_VSCROLL(SB_ENDSCROLL)メッセージが来て止まります。
  • この現象の原因、または原因の可能性、回避法等について、情報を探しているのですが、具体的な解決策は見つかっていません。知識のある方がいれば、教えていただけると幸いです。

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

  • ベストアンサー
  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.2

まあ、ゲームプログラミングみたいな物で能動的に取りに行く手段が有ります。 if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) //APIの戻り値の最上位ビットが立っていればボタンが押されている { //左ボタンが押された場合の処理 } if (GetAsyncKeyState(VK_RBUTTON) & 0x8000) //APIの戻り値の最上位ビットが立っていればボタンが押されている { //右ボタンが押された場合の処理 }

参考URL:
http://www.microsoft.com/japan/msdn/academic/Articles/DirectX/01/
fruipa
質問者

お礼

教えて頂いた方法で、本当のイベントか、間違って来たイベントか区別することが出来ました。 あとは、スクロールバーの状態が戻れば良いのですが、これはなんとか出来ると思います。 貴重なご意見ありがとうございました。

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

その他の回答 (1)

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

>回避法等 >ツマミがマウスカーソルの位置に来るまで(SB_PAGEDOWN/SB_PAGEUP)メッセージが連続して来ています。 まあ、マウスのクリックを同時に見て、マウスがクリックされて無いなら無視すれば回避出来る気がしますけどね。

fruipa
質問者

補足

ご回答ありがとうございます。 Spy++で試した時、スクロールバー上でクリックした時はWM_VSCROLLのみで、WM_LBUTTONDOWN、WM_LBUTTONUPとも来ていませんでしたが、取得する方法があるのでしょうか?

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

関連するQ&A