Как выровнять текст по центру в Scintilla?
В моем приложении у меня есть пользовательский элемент управления, который реализует подсветку синтаксиса через scintilla.dll.
Существуют всевозможные коды для установки стиля текста в элементе управления.
Тем не менее, я искал и искал и не могу понять, как выровнять текст по центру в элементе управления.
Какой код сцинтиллы для выравнивания по центру стиля текста?
1 ответ
Решение
В сцинтилле нет команды выравнивания по центру.
Вот что нужно сделать, чтобы центрировать текст:
- Получить текст из элемента управления
- Знать, какой стиль используется
- использование
TEXTWIDTH
(2276
) чтобы определить ширину текста, используя этот стиль - Используйте controlwidth /2 - textwidth /2 для определения местоположения левого поля
- использование
SETMARGINLEFT
(2155
) переместить левое поле
Обратите внимание, что стиль по умолчанию 32
,
Однако вам придется каждый раз придумывать свой код для обновления местоположения, возможно, с помощью некоторой функции обратного вызова.
В Autohotkey это может выглядеть так:
guicontrolget, editor
guicontrolget, editor, pos
textwidth := hwndeditor.2276(32,editor)
setplace := (editorW /2) - textwidth /2
hpeditor.2155(0,setplace)