「スクロールバーコントロールを使う」の編集履歴(バックアップ)一覧はこちら
「スクロールバーコントロールを使う」(2010/10/22 (金) 10:16:02) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
Win32アプリケーションを新規作成。コモンダイアログを使うをちぇっく
垂直スクロールバーをウインドウに貼る。
すたてっくテキストを貼る。
SCROLLINFO構造体をグローバル領域に定義(MainWnd.sbp内)する。
#asciiart(blockquote){
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim scr As SCROLLINFO
}
メインウインドウのイベントハンドらから、Createを記述。SCROLLINFO構造体を
指定してスクロールバーのプロパティを設定。
#asciiart(blockquote){
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim hscr As HWND
hscr=GetDlgItem(hMainWnd,VScrollBar1)
scr.cbSize=SizeOf(SCROLLINFO)
scr.fMask=SIF_ALL
scr.nMin=0
scr.nMax=100
scr.nPage=1
scr.nPos=45
SetScrollInfo(hscr,SB_CTL,scr,TRUE)
End Sub
}
メインウインドウのVScrollイベントハンドらをきじゅつ。
#asciiart(blockquote){
Sub MainWnd_VScroll(nScrollCode As Long, nPos As Integer, hwndScrollBar As HWND)
Dim hscr As HWND
hscr=GetDlgItem(hMainWnd,VScrollBar1)
'VScrollBar1のみのイベント処理
If hwndScrollBar=hscr Then
Select Case nScrollCode
Case SB_THUMBPOSITION
scr.nPos=nPos
Case SB_LINEUP
scr.nPos--
Case SB_LINEDOWN
scr.nPos++
Case SB_PAGEUP
scr.nPos=scr.nPos-5
Case SB_PAGEDOWN
scr.nPos=scr.nPos+5
End Select
SetScrollInfo(hscr,SB_CTL,scr,TRUE)
SetWindowText(hlabel,Str$(scr.nPos))
End If
End Sub
}
貼り付けたスクロールバーを使う場合のポイントは、SetScrollInfo()の引数に
SB_CTLをつかう。scr.fMask=SIF_ALLにする。
複数個のスクロールバーをつかう場合は、ハンドルを得て個別のイベントをしょり
する。
※本来はScrollBar専用のイベントハンドらによって記述する必要性があるが、Project
Editorに機能がないので、メインウインドウのスクロールバーのイベントハンドら
お利用すると簡単。