控件需要能够在多行上绘制文本、响应对 URL 或 @user 标记的点击等,这些需要具有不同的颜色才能脱颖而出。
第一个明显的选择是richedit 控件,但我遇到了很多问题。首先,我希望文本是不可选择的并且输入被禁用。后者很简单,但我发现不允许选择文本的唯一方法是禁用控件。在那种情况下,我不知道如何将背景颜色从默认的灰色更改为白色。此外,当控件被禁用时,我从richedit 免费获得的所有可点击链接功能都会停止工作。
你会说我的选择是什么?我对尝试使用 TextOut 进行自己的控制非常谨慎。这可能让我想哭。
编辑:直到现在我还没有考虑允许用户选择文本作为选项,所以只读模式似乎没有用。我只是这样计划的。我绝对希望没有闪烁的插入符号,所以我四处寻找,发现我可以在 Richedit 的 WM_SETFOCUS 上调用 HideCaret(通过对其进行子类化)并返回 0。这样就永远摆脱了插入符号。具有讽刺意味的是,这也摆脱了用鼠标选择任何东西的能力,这几乎正是我最初希望的行为。我不知道我是否完全反对不允许选择。我会回到那个。现在剩下的就是弄清楚我是否可以覆盖光标悬停在文本上时图像变化的行为。