- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スクロールバーの動作で困っております。)
スクロールバーの動作で困っております
このQ&Aのポイント
- スクロールボックスを画面の隅まで移動させる方法はありますか
- スクロールバーの動作で困っています。特に、横のサイズnMaxを設定する際にオーバーフローの問題が発生しています。
- オーバーフローした場合、スクロールボックスを後部に移動させることができません。解決策をご教示いただけないでしょうか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
当方は MFCダイアログベース、Win32APIベースでの検証をしておりますが つまみを動かしている最中でも変化するようです ・・・ MFCダイアログベースは 普通のスクロールバーコントロールとダイアログのスクロールバー Win32APIは ウィンドウのスクロールバー にて検証しました コモンコントロールのフラットスクロールバーだとコントロールに対するScrollイベントを記述しないといけないようですよ
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.1
SCROLLINFOのnTrackPosからデータを取得してはいかがでしょう トラッキングデータ取得用のSCROLLINFO型変数を用意しておきます SCROLLINFO siVal; メッセージハンドラ部で case SB_THUMBTRACK: ZeroMemory( &siVal, sizeof( SCROLLINFO ) ); siVal.cbSize = sizeof( SCROLLINFO ); siVal.fMask = SIF_ALL; ::GetScrollInfo( hWnd, SB_HORZ, &siVal ); dx = siVal.nTrackPos - sih.nPos; といった具合ですが ・・・
質問者
お礼
回答ありがとうございます。 GetScrollInfoを使ってnTrackPosの情報をみましたが、スクロールバーが停止している場合のポジションは採取できるのですが、動かしている場合の情報はどうも取れないようです。 でも、これを手がかりにもう少し探って見ます。もし、この結果で何か分かれば情報を頂きたく宜しくお願いします。
お礼
回答ありがとうございます。 先に教えて頂いた方法で、関数をFlatSB_GetScrollInfoに変えたらすんなりうまくいきました。 ご教示感謝いたします。有難うございました。