「スクロールバーコントロールを使う」の編集履歴(バックアップ)一覧はこちら

スクロールバーコントロールを使う」(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に機能がないので、メインウインドウのスクロールバーのイベントハンドら お利用すると簡単。

表示オプション

横に並べて表示:
変化行の前後のみ表示: