2016-06-06 3 views
0

В моем приложении у меня есть настраиваемый элемент управления, который реализует подсветку синтаксиса через файл scintilla.dll.Как выравнивать по центру текст в Сцинтилле?

There are all sorts of codes для установки стиля текста в элементе управления.

Однако я искал и искал и не могу понять, как выравнивать по центру текст в элементе управления.

Что такое код сцинтилля для выравнивания по центру текста?

ответ

0

В scintilla команды "выравнивание по центру" нет.

Вот что делать, однако, чтобы центрировать текст:

  1. Fetch текст из элемента управления
  2. знаю, что стиль используется
  3. Использование TEXTWIDTH (2276), чтобы определить ширину текста, использующего этот стиль
  4. Использовать контрольную ширину/2 - ширину текста/2 для определения местоположения левого поля
  5. Использовать SETMARGINLEFT ()) для перемещения левого поля

Обратите внимание, что стиль по умолчанию - 32.

Вам нужно будет указывать свой код, чтобы обновлять местоположение каждый раз, однако, возможно, через некоторую функцию обратного вызова.

В AutoHotkey, это может выглядеть следующим образом:

guicontrolget, editor 
guicontrolget, editor, pos 
textwidth := hwndeditor.2276(32,editor) 
setplace := (editorW /2) - textwidth /2 
hpeditor.2155(0,setplace) 
Смежные вопросы