SetScrollInfo

SetScrollInfoは、スクロールバーに関する情報をセットするWindowsAPI・・・。

SetScrollInfo 関数

これでWM_INITDIALOGの時に、スクロールバーの範囲や初期位置などを設定する・・・。

WM_INITDIALOGで、SCROLLINFO構造体変数scrinfoに構造体サイズ、設定項目がどれかを表すマスク、ページの最小値、最大値、ページサイズと現在の位置をセットする・・・。

スクロールバーはページという単位で移動する・・・。
この場合、全部で0~9までの10ページ(表示する領域が10あるということ)を表示できるという設定になっている・・・。
ページサイズは一度に表示するページの数・・・。つまみを1回クリックすると2ページ進むということ・・・。
そして位置は4としている・・・。現在位置が4ページ目ということ・・・。(2ページ表示だから、4ページ目と5ページ目を表示しているという状態)

GetDlgItemでID_SCROLL1のハンドルを取得したら、SetScrollInfoにscrinfoを渡す・・・。

f:id:BG1:20150917113119p:plain

Item1-1で、

f:id:BG1:20150917113132p:plain

右下のスクロールバーが真ん中あたりに来ている・・・。
WM_INITDIALOGで、現在位置を4ページ目にセットしたためである・・・。
ただし、スクロール時の挙動をセットしてないので、このままでは動かしても元の位置に戻るだけ・・・。

Sample/SetScrollInfo.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/SetScrollInfo.rc at master · bg1bgst333/Sample · GitHub