在Windows 10中,在哪里定义了用于使用Ctrl +箭头或Ctrl + Shift +箭头选择/移动文本的停止字符?


3

Windows(可能还有大多数其他操作系统)具有一项不错的功能,该功能使用户可以四处移动并更有效地选择文本。使用Ctrl(+ Shift])+左/右箭头时,可以跳转或选择大块文本(由空格,破折号和其他分隔)。我的问题是,我通常希望这种行为能够识别并停止在更广泛的字符列表上(例如,下划线_)。

Windows是否内置了此行为?是否可以在系统范围内或由应用程序开发人员覆盖?


好问题。我一直想防止程序将光标停在某些字符上,例如破折号。
Twisty Impersonator

Answers:


3

我们可以对此字符串进行实验(将其粘贴到记事本中):

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窗口消息设置给定的编辑控件或富文本控件的分词过程。通常,这将由拥有控件的应用程序完成,因为将仅保证过程的地址在该进程内有效。通过编程,您可能能够在目标应用程序的进程内创建一个线程,以在目标控件上设置自定义中断过程,但似乎没有那么棘手的方法。


哇,好答案。太糟糕了,没有简单的方法可以改变这种行为。
Twisty模仿者,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.