エディットボックスのスクロール情報 <TOP>
エディットボックスのスクロール情報を取得します。マルチライン(複数行入力あり)の場合のみ
GetScrollInfo スクロール情報取得
スクロール最大、最小および表示開始位置を表示させています。
'================================================================ '= エディットボックスのスクロール情報 '= (GetScrollInfo.bas) '================================================================ #include "Windows.bi" Type SCROLLINFO cbSize As Long 'このレコードのバイトサイズ fMask As Long '取得・設定する値を指定するマスクフラグ nMin As Long 'スクロール領域の最小値 nMax As Long 'スクロール領域の最大値 nPage As Long 'サム(つまみ)のサイズ nPos As Long 'サムの位置 nTrackPos As Long 'ドラッグ中のサムの位置 End Type ' スクロール情報取得 Declare Function Api_GetScrollInfo& Lib "user32" Alias "GetScrollInfo" (ByVal hWnd&, ByVal fBar&, lpScrollInfo As SCROLLINFO) #define SB_HORZ 0 '標準スクロールバーの水平 #define SB_VERT 1 '標準スクロールバーの垂直 #define SB_CTL 2 'スクロールバーコントロールの情報を設定 #define SIF_ALL (&H1 Or &H2 Or &H4 Or &H10) 'SIF_RANGE Or SIF_PAGE Or SIF_POS Or SIF_TRACKPOS #define SIF_DISABLENOSCROLL &H8 '無効なパラメータが指定されても消去せずに使用不能にする #define SIF_PAGE &H2 'nPageを設定することを明示 #define SIF_POS &H4 'nPosを設定することを明示 #define SIF_RANGE &H1 'nMinとnMaxを設定することを明示 #define SIF_TRACKPOS &H10 'nTrackPosフィールドにつまみの位置をセットすることを明示 #define vbCrLf (Chr$(13) & Chr$(10)) 'キャリッジリターンとラインフィード(\r\n) Var Shared Edit1 As Object Var Shared text(5) As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14 For i = 0 To 5 Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) Text(i).SetFontSize 14 Next '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var i As Integer Var txt As String For i = 0 To 100 txt = txt & Format$(i, "### ") & "http://tokovalue.web.infoseek.co.jp" & vbCrLf Edit1.SetWindowText txt Next End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var si As SCROLLINFO Var Ret As Long si.cbSize = Len(si) si.fMask = SIF_ALL Ret = Api_GetScrollInfo(Edit1.GethWnd, SB_VERT, si) Text(3).SetWindowText Format$(si.nMax, "###") Text(4).SetWindowText Format$(si.nMin, "###") Text(5).SetWindowText Format$(si.nPos, "###") End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End