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