プロが教える店舗&オフィスのセキュリティ対策術

ウインドウに垂直スクロールバーを表示させたのですが、ドラックしても、マウスを離すと一番上まで自動的に戻ってしまいます。

Viewクラスのメンバ関数にv_posを定義し、コンストラクタ内でゼロに初期化。cppファイルの中のOnVScroll関数に以下の記述をしているのですが、何が間違っているのか分かりません。。。

SCROLLINFO si;
switch(nSBCode){
case SB_LINEDOWN:
v_pos++;
break;
case SB_THUMBTRACK:
v_pos = nPos;
break;
}
si.nPos = v_pos;
SetScrollInfo(SB_VERT, &si);


一応、画面上にv_posの値は表示させてみたのですが、ドラッグしている間はきちんと増えています。

どうすれば、マウスを離した位置でスクロールバーが泊るのでしょうか??


環境はXP, VisualStudio.Net2003です。
よろしくおねがいします。

A 回答 (1件)

SCROLLINFOでスクロールの位置を設定するには


メンバのfMaskにSIF_POSをセットする必要があります。
あとcbSizeにSCROLLINFOのサイズもセットします。

si.cbSize = sizeof (si);
si.SIF_POS = SIF_POS;
si.nPos = xxxx;
    • good
    • 0
この回答へのお礼

出来ました!!
ありがとうございました

お礼日時:2006/09/24 15:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A