Сообщение EM_FORMATRANGE

Const EM_FORMATRANGE = (WM_USER + 57)

Сообщение EM_FORMATRANGE форматирует текст в rich edit control для заданного устройства

Возвращаемое значение

Сообщение возвращает индекс последнего символа в регионе плюс 1

Параметры

wParam
Specifies whether to render the text. If this parameter is a nonzero value, the text is rendered. Otherwise, the text is just measured
lParam
Структура FORMATRANGE, содержащая информацию об устройстве вывода или для любой информации, кэшируемой элементом

Пример

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 Const WM_USER = &H400
Private Const EM_FORMATRANGE = (WM_USER + 57)

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Type CHARRANGE
    char_before As Long
    char_after As Long
End Type

Private Type FORMATRANGE
    hdc As Long
    target_hdc As Long
    target_area As RECT
    entire_area As RECT
    char_range As CHARRANGE
End Type
' Overlay the text on the PictureBox inside
' the specified rectangle (in twips).
Private Sub OverlayText(ByVal pic As PictureBox, ByVal rch As RichTextBox, ByVal xmin As Single, ByVal xmax As Single, ByVal ymin As Single, ByVal ymax As Single)
Dim format_range As FORMATRANGE

' Подготовим структуры FORMATRANGE
    With format_range
        .hdc = pic.hdc
        .target_hdc = pic.hdc
        With .entire_area
            .Left = 0
            .Right = pic.ScaleX(pic.ScaleWidth, pic.ScaleMode, vbTwips)
            .Top = 0
            .Bottom = pic.ScaleY(pic.ScaleHeight, pic.ScaleMode, vbTwips)
        End With
        With .target_area
            .Left = xmin
            .Right = xmax
            .Top = ymin
            .Bottom = ymax
        End With
        With .char_range
            .char_before = 0
            .char_after = -1
        End With
    End With

    ' Display as much text as will fit.
    ' Setting wParam = True makes the RichTextBox
    ' display the text instead of just measuring it.
    SendMessage rch.hwnd, _
        EM_FORMATRANGE, True, format_range

    ' Clear resources allocated by the RichTextBox.
    SendMessage rch.hwnd, EM_FORMATRANGE, False, ByVal 0&
End Sub

Private Sub Form_Load()
    
  RichTextBox1 = "Русский_Проект: Пример сообщения EM_FORMATRANGE"

    '  Overlay the text on the picture.
    ' Leave a 10 percent margin.
    picCanvas.ScaleMode = vbTwips
    picCanvas.AutoRedraw = True
             
    OverlayText picCanvas, RichTextBox1, _
        picCanvas.ScaleWidth * 0.1, _
        picCanvas.ScaleWidth * 0.9, _
        picCanvas.ScaleHeight * 0.1, _
        picCanvas.ScaleHeight * 0.9
        
'      Display the form.
    Show
End Sub

Смотри также

EM_DISPLAYBAND

Категория

Rich Edit Controls