我知道样式具有允许/避免在应用样式时对其进行更改的属性:
SCI_STYLESETCHANGEABLE(int style, bool changeable)
但是,文档显示“ 这是一个实验性且未完全实现的样式属性。”,似乎还不是“可用于生产环境”
我认为还有另一种选择,使用“指标”:
要保护一定范围的文本,我们可以对其应用特定的指示符,并在按键事件中检测“ del”和“ backspace”。如果在“ del”情况下位于当前位置(插入符号位置)之后或在“ backspace”情况下位于当前位置之前的角色具有此指示符,则我们必须取消该事件并且不要擦除文本。
这2个替代方案中哪个更好?还有更好的方法吗?
注意:ScintillaNet是基于Scintilla的,我认为最后一个的大量文档对两者均有效。
答案 0 :(得分:0)
我与您分享了“ scintilla感兴趣”的Google网上论坛的回应之一,该论坛发布了Scintilla的创建者 Neil Hodgson 。
[Ian G。] >是SCI_STYLESETCHANGEABLE是我在尝试编写此补丁之前最初尝试的方法。我能看到的唯一真正的缺点是,在像我自己的情况下,它会使所需样式的数量加倍,因为可以在可写区域中出现的每种视觉样式也可以在受保护区域中出现,但是我可以忍受。
[Neil Hodgson] 最好为保护区使用一个指示器,因为它们相对节省空间并且避免样式数量加倍。