Windows(可能还有大多数其他操作系统)有一个很好的功能,可以让你更有效地移动和选择文本。当使用Ctrl(+ Shift]) + 左/右箭头时,你可以跳转或选择文本块(由空格、破折号和其他符号分隔)。我的问题是,我通常希望此行为能够识别更广泛的字符列表(例如下划线_
)并停止。
此行为是 Windows 内置的吗?它可以被整个系统或应用程序开发人员覆盖吗?
答案1
我们可以对这个字符串进行实验(将其粘贴到记事本或其他地方):
a!b@c#d$e%f^g&h*i(j)k-l=m_n+o{p}q[r]s|t\u`v~w/x<y>z?0.1;2'3:4"5
我发现!
、$
、%
、(
、-
、、、、和都对换行或字符聚类有一定影响。奇怪的是,似乎有多种影响类型 - 它们在是否可以换行以及 Control+Arrow 是否在之前或之后停止+
方面有所不同。(省略并非偶然。左括号有特殊属性,但右括号则不然。){
}
[
|
\
?
]
Windows 中的每个编辑控件都有一个断词程序.该程序负责:
- 确定给定字符的自动换行行为
- 确定字符是否为分隔符
- 查找相对于当前位置的下一个/上一个单词/词簇的开头
大多数应用程序使用 Windows 默认的断字程序,据我所知,它是不可配置的。可以使用EM_SETWORDBREAKPROC
窗口消息。通常,这将由拥有控件的应用程序完成,因为过程的地址仅在该进程内才保证有效。从编程角度来说,您可能能够在目标应用程序的进程内创建一个线程,在目标控件上设置自定义中断过程,但似乎没有更简单的方法。