我们都熟悉文字突出显示。将鼠标悬停在Windows操作系统上任何应用程序中的任何“文本”上,光标变为工字梁,您可以单击并拖动文本以突出显示它。可以将此突出显示的文本复制到剪贴板供以后使用。
某些应用程序通过更改颜色,不透明度甚至形状来修改默认突出显示行为。某些应用程序允许列选择(例如Visual Studio“alt-click-drag”创建类似突出显示的框)
我已经深入研究了互联网的深度,但我似乎无法找到可以解释如何修改文本突出显示行为的可靠信息来源。
如何实现列/块文本选择,以及修改已编译应用程序中突出显示文本的外观。
答案 0 :(得分:2)
由于应用程序可以通过各种自定义方式执行此操作,因此没有单一的解决方案可以更改所有文本选择的样式。
许多人会依赖当前的配色方案(使用GetSysColor)来确定高光颜色。因此,您可以修改方案,并可能影响许多应用程序使用的颜色。
要以编程方式执行此操作,您可以使用SetSysColors更改COLOR_HIGHLIGHT和COLOR_HIGHLIGHTTEXT值。
其他应用程序可能依赖于当前主题(使用GetThemeColor)。要影响那些您必须选择具有所需颜色(可能还有其他样式选择)的不同主题。
许多应用都使用自己的硬编码配色方案,因此根本无法以编程方式进行。
答案 1 :(得分:1)
我不确定您对问题的网络应用程序部分的意思。 Web应用程序是一些HTML,JS和CSS,使浏览器与您的系统交互。 Web应用程序提供的任何自定义选择(着色)逻辑都必须由浏览器实现。
此外,您必须意识到"(文本)选择"是一个相当虚拟的原则。应用程序可以在收到WM_COPY消息时呈现彩色形状(如蓝色矩形)并将某些内容复制到剪贴板。
Windows在basic substring selection functionality for (rich) edit controls中提供(即开始和结束位置),但对于像列选择这样的自定义内容,则需要自定义代码。
在Making a rectangular selection in a RichTextBox with Alt-Left-Mouse sweep?了解详情。