Control Add "RichEdit", hDlgM, %ID_LTEXT1,"",3&,125&,668&,190&, _
%WS_CHILD Or %WS_CLIPCHILDREN Or %WS_VISIBLE Or _
%ES_MULTILINE Or %WS_VSCROLL Or %ES_READONLY Or _
%WS_HSCROLL Or %ES_AUTOHSCROLL Or %ES_AUTOVSCROLL Or _
%ES_WANTRETURN, %WS_EX_CLIENTEDGE
Control Handle hdlgM, %ID_LTEXT1 To hEdit
SendMessage hEdit, %EM_SETBKGNDCOLOR, 0&, RGB(175,196,176)
Setcolor "project", %Red
Macro SETTEXT
Setcolor "OBJ0", %Red
SetColor "|", %Green
SetColor "OBJ1", %Blue
SetColor "OBJ2", %Magenta
SendMessage hEdit, %WM_SETREDRAW, 1&, 0& 'Refresh and reset redraw
InvalidateRect hEdit, ByVal %NULL, %FALSE
UpdateWindow hEdit
End Macro
Function SetColor(ByVal Txt As String, ByVal nColor As Long) As Long
#Register None
Register sLen As Long
Register stopPos As Long
sLen = Len(txt)
stopPos = InStr(OS_PATHS, Txt)
While stopPos
Call SendMessage(hEdit, %EM_SETSEL, stopPos - 1&, stopPos + sLen - 1&)
Call setRichColor(nColor)
stopPos = InStr(stopPos + sLen, OS_PATHS, Txt)
Wend
Call SendMessage(hEdit, %EM_SETSEL, 0&, 0&)
End Function
Function setRichColor(ByVal nColor As Long) As Long
#Register None
Static cf As CHARFORMAT
cf.cbSize = Len(cf) 'Length of structure
cf.dwMask = %CFM_COLOR 'Set mask to colors only
cf.crTextColor = nColor 'Set the new color value
Call SendMessage(hEdit, %EM_SETCHARFORMAT, %SCF_SELECTION, VarPtr(cf))
End Function
Но одно неудобство - для очень больших текстов с множественной продстветкой довольно долго отрисовывает цветной текст.
jangle писал(а):Но одно неудобство - для очень больших текстов с множественной продстветкой довольно долго отрисовывает цветной текст.
поэтому и не хочу использовать richedit, EDM не тормозит на больших объемах текста
Можно покапаться здесь,
http://www.powerbasic.com/support/forum ... 01911.html
jangle писал(а):Пока буду пытаться создать SDI редактор, он намного проще в реализалии. Основа пример с EDM32 все кому надо, смотрите в аттаче
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0