テキストボックスでのカーソル位置を取得する
テキストボックスでのカーソル位置を取得するサンプルです。
サンプルの実行画面
ソースコード
[TextBox.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_LINEFROMCHAR = &HC9 'カーソルがある行数(縦)を取得
Const EM_GETLINECOUNT = &HBA 'テキストボックスでの最大行数(縦)を取得する
Const EM_LINEINDEX = &HBB 'カーソルがある行(横)の位置を取得する
Const EM_LINELENGTH = &HC1 'カーソルがある行(横)の最大行数を取得する
Const EM_GETSEL = &HB0 '
Private Sub Form_Load()
Text1.Text = "テキストボックスにカーソルを移してください。" & vbCrLf & _
"現在の座標が表示されていますか?" & vbCrLf & _
vbCrLf & _
"テキストボックスにカーソルを移してください。" & vbCrLf & _
"現在の座標が表示されていますか?" & vbCrLf & _
vbCrLf & _
"テキストボックスにカーソルを移してください。" & vbCrLf & _
"現在の座標が表示されていますか?" & vbCrLf & _
vbCrLf & _
"テキストボックスにカーソルを移してください。" & vbCrLf & _
"現在の座標が表示されていますか?" & vbCrLf & _
vbCrLf & _
"テキストボックスにカーソルを移してください。" & vbCrLf & _
"現在の座標が表示されていますか?"
End Sub
Private Sub Timer1_Timer()
Dim Line As Long 'カーソルがある行数(縦)
Dim MaxLine As Long '現在の最大行数(縦)
Dim Top As Long 'カーソルがある行の先頭の位置(横)
Dim Width As Long 'カーソルがある行の最大行数(横)
Dim Midle As Long '
Dim Ret As Long '現在カーソルがある位置(横)
'現在カーソルがある行数(縦)を取得する
Line = SendMessage(Text1.hwnd, EM_LINEFROMCHAR, -1, 0) + 1
'最大行数(縦)を取得する
MaxLine = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0, 0)
Label1.Caption = "行数(縦)" & Line & "/" & MaxLine
'カーソルがある行(横)の位置を取得する
Top = SendMessage(Text1.hwnd, EM_LINEINDEX, -1, 0)
'カーソルがある行(横)の最大行数を取得する
Width = (SendMessage(Text1.hwnd, EM_LINELENGTH, Top, 0)) / 2 + 1
'カーソルの位置を取得する
Midle = SendMessage(Text1.hwnd, EM_GETSEL, 0, 0)
Ret = (Midle \ 65536 - Top) / 2 + 1
Label2.Caption = "位置(横)" & Ret & "/" & Width
End Sub
'※テキストボックスに半角を使用すると正確でなくなります。
ソースコード一式のダウンロード
vbapi_textbox.zip 5.94 KB (6,086 バイト)
このサンプルの動作環境について
このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
関連記事
| 前の記事: | リストボックスの各種操作2 |
| 次の記事: | テキストボックスの各種操作1 |
公開日:2015年03月05日
記事NO:00404
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









