
スクロールバーの動作で困っております。
下記に抜粋のコーディングを示しましたが、横のサイズnMaxを例えば80000(※1)としスクロールボックスを移動させると、ある地点を過ぎると変数wpの上位2バイトがオーバーフローし、スクロールボックスを後部に移動させることが出来ません。
この様な場合どう設定すればスクロールボックスを画面の隅まで移動させられるのでしょうか。どなたかよい解決策をご存知でしたらご教示いただきたく、宜しくお願いします。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){
:
case WM_CREATE:
FlatSB_SetScrollProp(hWnd, WSB_PROP_HSTYLE, FSB_FLAT_MODE, TRUE);
break;
:
case WM_SIZE:
sih.cbSize= sizeof(SCROLLINFO);
sih.fMask= SIF_ALL;
sih.nMin= 0;
sih.nMax= 80000; // ※1
sih.nPage= LOWORD(lp) / 8; // 8 = 文字幅
sih.nPos= posh; // corrent sih.nPos
FlatSB_SetScrollInfo(hWnd, SB_HORZ, &sih, TRUE);
break;
:
case WM_HSCROLL:
switch (LOWORD(wp)) {
case SB_THUMBTRACK:
dx = HIWORD(wp) - sih.nPos; // ※2 wpの上位ワードがオーバーフローしてしまう
break;
}
No.2ベストアンサー
- 回答日時:
当方は MFCダイアログベース、Win32APIベースでの検証をしておりますが
つまみを動かしている最中でも変化するようです ・・・
MFCダイアログベースは 普通のスクロールバーコントロールとダイアログのスクロールバー
Win32APIは ウィンドウのスクロールバー
にて検証しました
コモンコントロールのフラットスクロールバーだとコントロールに対するScrollイベントを記述しないといけないようですよ
回答ありがとうございます。
先に教えて頂いた方法で、関数をFlatSB_GetScrollInfoに変えたらすんなりうまくいきました。
ご教示感謝いたします。有難うございました。
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の情報をみましたが、スクロールバーが停止している場合のポジションは採取できるのですが、動かしている場合の情報はどうも取れないようです。
でも、これを手がかりにもう少し探って見ます。もし、この結果で何か分かれば情報を頂きたく宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
TikTokLiteの自動スクロールの...
-
エクセルVBAでフォームのListbo...
-
マウスでコロコロしたいんですが…
-
リストビューの表示開始行変更
-
CTreeCtrlのHitTestメソッドに...
-
アコーディオンで開かれたパネ...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
常に画像の大きさを横幅100%で...
-
html js 横軸の長いチャート
-
Visual Basicから Spreadのスク...
-
大きい表へのスクロールバーの...
-
MSHFlexGridの幅
-
C#:ListViewでのスクロールイベ...
-
文章の自動スクロール
-
VBE画面の縦のスクロールバ...
-
resizeするとスマホで何度もリ...
-
水平スクロールができない。
-
リストビューの水平スクロール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
エクセルVBAでフォームのListbo...
-
TikTokLiteの自動スクロールの...
-
マウスオーバー→ホイール回転で...
-
vb,netでtextboxの文字を右から...
-
大きい表へのスクロールバーの...
-
アコーディオンで開かれたパネ...
-
Visual Basicから Spreadのスク...
-
webページで横方向にアンカーを...
-
ページ読み込み時に自動でスク...
-
ページ訪問時にiframe内を自動...
-
文章の自動スクロール
-
リストボックスをクリックした...
-
JTableの行ヘッダーを非表示に...
-
グループボックス内のコンボボ...
-
このサイトのスクロール逆じゃ...
-
スクロールボタンを押してもス...
-
ジャバスクリプトを教えて下さい
おすすめ情報