Public Sub Get_Line()
Dim lLineCount As Long, lLineIndex As Long, lCurrentByte As Long, i As Long, J As Long
Dim lColNo As Long, lLineLength As Integer
  With FrmMain.RichEdit
        lLineCount = SendMessage(.hwnd, EM_GETLINECOUNT, ByVal 0&, .SelStart)
        lLineIndex = .GetLineFromChar(.SelStart) + 1
        lCurrentByte = SendMessage(.hwnd, EM_LINEINDEX, -1, 0)  '取得目前光标所在行前面有多少个Byte
        lLineLength = SendMessage(.hwnd, EM_LINELENGTH, lCurrentByte, 0) + 1 '取得当前行的长度
        i = SendMessage(.hwnd, EM_GETSEL, ByVal 0&, ByVal 0&)
         J = i / 65536 '取得目前光标所在位置前有多少个Byte
         lColNo = J - lCurrentByte + 1
  End With
      
  FrmMain.LbRow.Caption = "行:" & lLineIndex & " / " & lLineCount
   FrmMain.LbCol.Caption = "列:" & lColNo & " / " & lLineLength
      
'    With FrmMain.StatusBar1
'         .Panels(2) = "行:" & lLineIndex & " / " & lLineCount
'         .Panels(3) = "列:" & lColNo & " / " & lLineLength
'    End With
End Sub以上代码摘自我自己的一个程序中的一个过程,您自己试试,希望能给您点帮助!

解决方案 »

  1.   

    谢谢各位,我想出办法解决了。
    '返回当前行第一个字符位置, 行字符数量
    Private Sub FindChar(RTFBox As RichTextBox, FChar As Long, BuffLen As Long)
        Dim astr As String
        Dim l, l1, l2 As Long
        Dim SBuffer As String
        Dim lBufferLen As Long
        Dim F As Long
        
        With RTFBox
            SBuffer = Trim(.text & " ")
            lBufferLen = Len(SBuffer)
            
            '返回当前行的字符串
            astr = Space(1024)
            l = SendMessage(.hwnd, EM_LINEINDEX, -1, 0)
            iLineY = SendMessage(.hwnd, EM_LINEFROMCHAR, l, 0) '取当前行号
            
            '取当前行前的字符总数
            For F = 0 To iLineY - 1
                astr = Space(1024)
                l = SendMessageStr(.hwnd, EM_GETLINE, F, ByVal astr)
                FChar = FChar + Len(Trim(astr))
            Next
            
            '当前行开始位置
            FChar = FChar + 1: astr = Space(1024)
            l = SendMessageStr(.hwnd, EM_GETLINE, iLineY, ByVal astr)
            astr = Trim(astr) '取得光标所在行全部字符
            BuffLen = Len(astr) - 2 '文本长度
        End With
    End Sub