【发布时间】:2026-01-07 07:55:02
【问题描述】:
我目前正在为 Scintilla(当前为 v5.0.1)在 AutoHotkey 中制作一个类包装器。我不确定我在尝试制作文本边距时遇到了什么问题。看起来它应该非常简单。我只是在使用 Scintilla 寻求操作顺序方面的帮助(而不是 AHK 帮助)。
我正在尝试执行以下操作:
ctl := g.AddScintilla("vMyScintilla w500 h500")
m1 := ctl.Margin ; isolate Margin object from control (used internally)
m1.ID := 1 ; selecting margin ID (used internally by the class)
m1.Width := 100 ; setting margin width (SCI_SETMARGINWIDTHN)
m1.Type := 4 ; set margin type 4, text margin (SCI_SETMARGINTYPEN)
m1.Text(1,"asdf") ; SCI_MARGINSETTEXT (insert text to line 1)
msgbox m1.Text(1) ; try to get text from margin line 1 ... "asdf"
我看到边距按照代码中的规定自行扩展到 100 像素(很难错过)。我将所有内容都保留为从 0 开始,因此边距 1 是数字边距之后的符号边距。
最后的 msgbox 显示了我放在边距中的文本,所以它似乎成功了,但文本没有显示。
我尝试使用 SCI_MARGINSETSTYLE 为文本添加样式,但没有效果。我什至更改了我的 Windows 主题,以确保文本的颜色与边距背景的颜色不同,但似乎并非如此。
我没有从 AHK 脚本中得到任何错误。
我无法弄清楚我错过了什么。我已经顺利通过了超过 50% 的 Scintilla 文档,但我被难住了。
【问题讨论】:
标签: text margin sendmessage scintilla