Что нового

Раскраска текста внутри контрола

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
В общем GUI у меня есть контрол в который я постоянно дописываю текст (показываю сообщения которые попадают в лог).
Код:
Global $idMonitor = GUICtrlCreateEdit("Log", 10, 10, 470, 350,$ES_WANTRETURN+$WS_VSCROLL+$ES_AUTOVSCROLL+$ES_MULTILINE+$ES_READONLY)

Информация в контрол выводится только для просмотра.

Теперь у меня возникла необходимость красить строки (и даже отдельные слова или символы в строке) в разный цвет.
Насколько я понимаю, стандартные средства раскраски текста не позволяют это сделать.
Вместе с тем постоянно крутится мысль что, наверное, контрол типа Edit не очень удачное решение.
Есть ли возможность встроить в GUI что-то типа консоли?
Такая консоль как, например, в SciTE с возможностью раскраски текста мне бы очень подошла.
:scratch:
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Еще можно использовать встроенный в GUI объект IE и HTML
 
Автор
C2H5OH

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
_GUICtrlRichEdit_SetCharColor

:thumbs_up:

С html, наверное, проще не будет. Ну для меня, лично)
 
Автор
C2H5OH

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Не совсем всё хорошо с _GUICtrlRichEdit
Я создаю GUI c $WS_SIZEBOX
И контрол созданный с помощью GUICtrlCreateEdit честно повторяет изменение размеров окна GUI.
А контрол созданный с помощью _GUICtrlRichEdit_Create живёт своей жизнью.
Код:
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>

$sTitle = "TEST"
Opt("GUIOnEventMode",1)
Global $hGUI = GUICreate($sTitle, 500, 500, Default, Default, $WS_SIZEBOX)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
Global $hRichEdit = _GUICtrlRichEdit_Create($hGui, 'Это тест.', 10, 10, 470, 350, $ES_MULTILINE+$WS_VSCROLL+$ES_AUTOVSCROLL+$ES_READONLY)
;Global $idMonitor = GUICtrlCreateEdit("Log", 10, 10, 470, 350,$ES_WANTRETURN+$WS_VSCROLL+$ES_AUTOVSCROLL+$ES_MULTILINE+$ES_READONLY)

GUISetState(@SW_SHOW, $hGUI)

While 1
	Sleep(1000)
WEnd

Func _Exit()
	GUIDelete($hGui)
	Exit
EndFunc

А можно как-то заставить контрол _GUICtrlRichEdit соответствовать изменениям основного GUI ?
 

InnI

AutoIT Гуру
Сообщения
4,958
Репутация
1,448
Верх