如何在 Scintilla 中居中对齐文本?
How to center-align text in Scintilla?
在我的应用程序中,我有一个自定义控件,它通过 scintilla.dll.
实现语法突出显示
There are all sorts of codes用于设置控件中文本的样式。
但是,我搜索了又搜索,还是想不出如何在控件中居中对齐文本。
文本样式居中对齐的 scintilla 代码是什么?
scintilla 中没有 "center-align" 命令。
但是,要使文本居中,请执行以下操作:
- 从控件中获取文本
- 知道正在使用什么样式
- 使用
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)
在我的应用程序中,我有一个自定义控件,它通过 scintilla.dll.
实现语法突出显示There are all sorts of codes用于设置控件中文本的样式。
但是,我搜索了又搜索,还是想不出如何在控件中居中对齐文本。
文本样式居中对齐的 scintilla 代码是什么?
scintilla 中没有 "center-align" 命令。
但是,要使文本居中,请执行以下操作:
- 从控件中获取文本
- 知道正在使用什么样式
- 使用
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)