TOP > カテゴリ > Visual Basic >

テキストボックスの各種操作2

テキストボックスの各種操作2のサンプルです。

サンプルの実行画面

ソースコード

[TextItem2.frm]

'SendMessage=>メッセージをウインドウに送る

'<引数>
'hWnd:ウインドウのハンドル
'wMsg:定数(EM_××参照)
'wParam:パラメータ
'lParam:0

'<戻り値>
'余り使わない

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

Const EM_SCROLL = &HB5               '上下にスクロールする
Const EM_SETSEL = &HB1               '指定の行を選択する
Const EM_LINEINDEX = &HBB            '指定位置の先頭、終了位置を取得する
Const EM_LINESCROLL = &HB6           '指定量だけスクロールする
Const EM_GETFIRSTVISIBLELINE = &HCE  '先頭行の行番号を取得
Const EM_GETLINECOUNT = &HBA         '行数を取得
Private Sub Command1_Click(Index As Integer)

'テキストをスクロールする。

'第四引数と第五引数の値
'--------------------
'0->上へ1行
'1->下へ1行
'2->上へ1ページ
'3->下へ1ページ
'--------------------

  Call SendMessage(Text1.hwnd, EM_SCROLL, ByVal Index, ByVal Index)

End Sub

Private Sub Command2_Click()

 Dim StartPostion As Long  '指定の行の先頭位置
 Dim EndPostion As Long    '指定の行の終了位置

    '指定の行の先頭位置を取得
     StartPosition = SendMessage(Text1.hwnd, EM_LINEINDEX, 10, 0)
    
    '指定の位置の終了位置を取得
     EndPosition = SendMessage(Text1.hwnd, EM_LINEINDEX, (10 + 1), 0) - 1
    
    '指定の行を選択表示にする
     Call SendMessage(Text1.hwnd, EM_SETSEL, StartPosition, ByVal EndPosition)

    'フォーカスを移す
     Text1.SetFocus

End Sub

Private Sub Command3_Click()
 
 Dim Total As Long        '行数
 Dim TopID As Long        '先頭の行番号
 Dim LineTopID As Long    '指定行の先頭の文字位置
 Dim Jump As Long         'ジャンプしたい行数
 
 Jump = 30
 
 '行数を取得
  Total = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0, 0)
 
 '先頭の行番号を取得
  TopID = SendMessage(Text1.hwnd, EM_GETFIRSTVISIBLELINE, 0, 0)
 
 '指定行の先頭の文字位置を取得
  LineTopID = SendMessage(Text1.hwnd, EM_LINEINDEX, Jump, 0)
 
 '指定の行を選択する(範囲の指定)
  Call SendMessage(Text1.hwnd, EM_SETSEL, LineTopID, LineTopID)
 
 '指定の行にジャンプする
  Call SendMessage(Text1.hwnd, EM_LINESCROLL, 0, ByVal Jump - TopID)

End Sub

'初期設定
Private Sub Form_Load()

 For i = 0 To 50

  If i <> 50 Then
    Text1.Text = Text1.Text & i & "行目 " & "テキストボックスの各種操作②" & vbCrLf
  Else
    Text1.Text = Text1.Text & i & "行目 " & "テキストボックスの各種操作②"
  End If
   
 Next

End Sub

ソースコード一式のダウンロード

vbapi_textitem2.zip 1.57 KB (1,612 バイト)

このサンプルの動作環境について

このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。





関連記事



公開日:2015年03月05日
記事NO:00406