Čísla řádku v RichTextBoxu

Postup:
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 Declare Function SendMessageStr Lib "user32" Alias _
    "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As String) As Long

Private Const EM_GETLINE = &HC4
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1

Private Sub Command1_Click()
  
    Dim lngCount As Long
    Dim lngLineIndex As Long
    Dim lngLength As Long
    Dim strBuffer As String
    Dim strRichText As String
    Dim i As Integer
    'Get Line count
    lngCount = SendMessage(RichTextBox1.hwnd, EM_GETLINECOUNT, 0, 0)
    With RichTextBox1
        For i = 0 To lngCount - 1
            'Zjištění indexu řádky
            lngLineIndex = SendMessage(.hwnd, EM_LINEINDEX, i, 0)
            'Zjištění délky řádky
            lngLength = SendMessage(.hwnd, EM_LINELENGTH, lngLineIndex, 0)
            'Velikost bufferu
            strBuffer = Space(lngLength)
            'Zjištění textu na řádce
            Call SendMessageStr(.hwnd, EM_GETLINE, i, ByVal strBuffer)
            'Očíslování každé řádky
            strRichText = strRichText & CStr(i + 1) & " " & strBuffer & vbCrLf
        Next
        'Přepsání očíslovaného textu
        .Text = strRichText
    End With
End Sub

Private Sub Form_Load()

    With RichTextBox1
        .Text = "První řádek" & vbCrLf
        .Text = .Text & "Druhý řádek" & vbCrLf
        .Text = .Text & "Třetí řádek"
    End With

End Sub

Zpět

Autor: The Bozena

iReklama.cz - nový reklamní systém
iReklama.cz - nový reklamní systém