Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Command1_Click()
'然后在程序中这样使用:
Dim l, a
RichTextBox1.SetFocus
l = SendMessage(RichTextBox1.hwnd, EM_LINEINDEX, -1, 0)
Debug.Print l
a = SendMessage(RichTextBox1.hwnd, EM_LINEFROMCHAR, l, 0)
Debug.Print a
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 1 To 100
Me.RichTextBox1.Text = Me.RichTextBox1.Text + "assffrerertteiieioiopiopiopiopioiopiopeeee这个各个共同达到的aaa" + vbCrLf
Next
End Sub
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Command1_Click()
On Error Resume Next
'然后在程序中这样使用:
Dim a As Long, fline As Long
'获取richtextbox控件的可见第一行
fline = SendMessage(RichTextBox1.hwnd, EM_GETFIRSTVISIBLELINE, 0&, ByVal 0&)
MsgBox fline
RichTextBox1.SetFocus
a = SendMessage(RichTextBox1.hwnd, EM_LINEFROMCHAR, -1, 0)
Debug.Print a
Dim sline As Long
sline = a - fline
'滚动
Call SendMessage(RichTextBox1.hwnd, EM_LINESCROLL, 1&, ByVal sline)
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 1 To 100
Me.RichTextBox1.Text = Me.RichTextBox1.Text + "assffrerertteiieioiopiopiopiopioiopiopeeee这个各个共同达到的aaa" + vbCrLf
Next
End Sub
l = SendMessage(RichTextBox1.hwnd, EM_LINEINDEX, -1, 0)代表行索引号吗,有什么用途?
返回光标所在行第一个字符的编号,一般情况下只有获得了这个编号,才能使用EM_LINEFROMCHAR消息
事实上:
Private Sub Command1_Click()
'然后在程序中这样使用:
Dim a As Long
RichTextBox1.SetFocus
a = SendMessage(RichTextBox1.hwnd, EM_LINEFROMCHAR, -1, 0)
Debug.Print a
End Sub