TextBox/RichTextBoxのキャレットのある行を取得
VisualBasic6用
TextBox/RichTextBoxのキャレットのある行を取得
Const EM_LINEFROMCHAR = &HC9 Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long ' TextBox/RichTextBoxのキャレットのある行数を取得 ' ' lngHWnd : TextBox/RichTextBox のウィンドウハンドル ' ' 戻り値 : 正常 - キャレットのある行 ' 異常 - -1 ' Function GetCursorLine(ByVal lngHwnd As Long) As Long Dim lngN As Long lngN = SendMessage(lngHwnd, EM_LINEFROMCHAR, -1, 0) If lngN >= 0 Then GetCursorLine = lngN + 1 Else GetCursorLine = lngN End If End Function