C# 如何使用C突出显示记事本中的所有重复文本?

C# 如何使用C突出显示记事本中的所有重复文本?,c#,winapi,pinvoke,C#,Winapi,Pinvoke,如何通过双击记事本中的单词来突出显示所有重复的文本 当我选择内容中重复的单词时,我希望记事本在突出显示文本方面表现得像记事本+ 我熟悉一些pInvoke材料和概念。我的C项目处理获取记事本实例、句柄等所需的所有过程,但我不知道如何将颜色发送回记事本编辑控件 我需要的是你的建议和这件事的路线图。为了实现这一目标,我应该涵盖哪些主题 提前感谢。MSDN的这一页似乎正是您想要的 从MSDN: 通过创建托管可扩展性框架MEF组件部件,可以向编辑器添加不同的视觉效果。本演练演示如何高亮显示文本文件中当前单

如何通过双击记事本中的单词来突出显示所有重复的文本

当我选择内容中重复的单词时,我希望记事本在突出显示文本方面表现得像记事本+

我熟悉一些pInvoke材料和概念。我的C项目处理获取记事本实例、句柄等所需的所有过程,但我不知道如何将颜色发送回记事本编辑控件

我需要的是你的建议和这件事的路线图。为了实现这一目标,我应该涵盖哪些主题

提前感谢。

MSDN的这一页似乎正是您想要的

从MSDN: 通过创建托管可扩展性框架MEF组件部件,可以向编辑器添加不同的视觉效果。本演练演示如何高亮显示文本文件中当前单词的每个匹配项。如果一个单词在文本文件中出现多次,并且您将插入符号放在一个匹配项中,则每个匹配项都会高亮显示

这将指导您如何创建一个应用程序,当您突出显示一个单词时,它将以蓝色突出显示所有匹配的单词


如果你不是在寻找一个完整的解决方案,那么这个概念就在那里,而且解释得很好。

你不能对记事本这样做。记事本使用普通编辑控件,不支持彩色文本范围。要做到这一点,你需要包装一个丰富的编辑控件,或者使用闪烁编辑控件,而Notepad++就是这样做的。

是什么让你认为你可以神奇地让Notepad做到这一点?事实上,Notepad只是一个例子,我有另一个应用程序需要应用这个解决方案。如果我在记事本中处理这个问题,我可以在任何地方通过我的c应用程序的外部编辑控制来完成。我不明白人们是如何对这个问题进行否决的。这真的是胡说八道吗?嗯,首先要问的是:你有任何理由认为这是可能的吗?你以前见过这样做吗?不是每件事都有可能,或者至少:如果有可能的话,它将不得不使用大量的黑客一次又一次的黑客来完成,而且非常脆弱,不可能有一个简单的答案。他提到了他的C项目,他希望记事本具有该功能,我列出的MSDN页面基本上允许您打开应用程序,然后用文本文件记事本突出显示任何文本,以突出显示所有其他单词。-我想我是在冒昧地假设他使用的是Visual Studio。考虑到它谈论的是pInvoke和记事本实例、手柄等-我真的认为他指的是普通的香草记事本。我可能误解了这个问题,如果他谈论的记事本没有使用VS,那么我甚至不理解这个问题,我是说这可能吗?谢谢你的澄清。正如马克所理解的,我指的是经典的notepad.exe,我想突出显示文本。例如,当我在notepad.exe中选择一个单词时,我的应用程序会监听它的所有事件,然后它会在notepad的编辑控件中找到重复的单词并高亮显示所有这些单词。这正是我链接的应用程序所做的。好吧,如果我尝试对支持高亮显示的notepad++执行此操作,我需要什么,您将获得窗口句柄并向其发送消息。相关消息看起来像SCI_SETINDICATORCURRENT和SCI_SETINDICATORFILLRANGE。