テキストボックスの各種操作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」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
関連記事
前の記事: | テキストボックスの各種操作1 |
次の記事: | 指定の位置に文字列を出力する |
公開日:2015年03月05日
記事NO:00406