メインウインドウの横に付くスクロールバーを使う。
ウインドウデザイナは一部未対応のため、手作業で諸々書かないといけない。

  • 使い方

Win32プロジェクトを新規作成。”コモンコントロールを使用する”、を必ずちぇっく。
ウインドウのプロパティから、垂直スクロールバーをちぇっく。
続いて、SCROLLINFO構造体をグローバル領域に定義(MainWnd.sbp内)する。


' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim scr As SCROLLINFO

メインウインドウのイベントハンドらから、Createを記述。SCROLLINFO構造体を
指定してスクロールバーのプロパティを設定。


Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
scr.cbSize=SizeOf(SCROLLINFO)
scr.fMask=SIF_POS
scr.nMin=0
scr.nMax=100
scr.nPage=1

SetScrollInfo(hMainWnd,SB_VERT,scr,TRUE)
End Sub

すたてっくてきすとをウインドウに一つ張る。
そして、メインウインドウのイベントハンドらから、VScrollを記述。


Sub MainWnd_VScroll(nScrollCode As Long, nPos As Integer, hwndScrollBar As HWND)

'ラベルのコントロールハンドルを得る
Dim hlabel As HWND
hlabel=GetDlgItem(hMainWnd,Static1)

'スクロールバーのイベント処理
Select Case nScrollCode
Case SB_THUMBPOSITION
scr.nPos=nPos
Case SB_LINEUP
scr.nPos--
Case SB_LINEDOWN
scr.nPos++
End Select

'スクロールバーの変更を反映し、ラベルを更新
SetScrollInfo(hMainWnd,SB_VERT,scr,TRUE)
SetWindowText(hlabel,Str$(scr.nPos))

End Sub

必要ならプロシージャを使ってイベントが発生したときに処理すればいい。


Select Case nScrollCode
Case SB_THUMBPOSITION
scr.nPos=nPos
Scroll_Change()
Case SB_LINEUP
scr.nPos--
Scroll_UpButtonDown()
'-----

Sub Scroll_UpButtonDown()
'コードを追加
End Sub

スクロールバーのコントロールも大体同じ。

タグ:

+ タグ編集
  • タグ:
最終更新:2010年10月22日 06:25