如何在 Scintilla 中居中对齐文本?

Posted

技术标签:

【中文标题】如何在 Scintilla 中居中对齐文本?【英文标题】:How to center-align text in Scintilla? 【发布时间】:2016-06-06 22:36:38 【问题描述】:

在我的应用程序中,我有一个通过 scintilla.dll 实现语法高亮的自定义控件。

There are all sorts of codes 用于设置控件中文本的样式。

但是,我已经搜索和搜索,无法弄清楚如何将控件中的文本居中对齐。

文本样式居中对齐的闪烁代码是什么?

【问题讨论】:

【参考方案1】:

scintilla 中没有“居中对齐”命令。

但是,要使文本居中,请执行以下操作:

    从控件中获取文本 了解正在使用的样式 使用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 中居中对齐文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何使文本在openoffice电子表格的单元格中居中?

在文本字段中居中对齐占位符

在 svg 中居中文本无法正常工作

如何让文本在可滚动的 UILabel 中居中?

如何在具有视口单位的 div 中居中文本?

如何在 XAML 中居中​​选项卡式页面选项卡图标和/或文本?