为了使用winapi显示推文,我可以选择哪种最佳控件?

时间:2011-05-31 02:04:19

标签: c++ winapi richedit

控件需要能够在多行上绘制文本,响应URL或@user标签上的点击等,这些都需要具有不同的颜色才能脱颖而出。

第一个显而易见的选择是一个richedit控件,但我遇到了很多问题。首先,我希望文本不可选,输入被禁用。后者很简单,但我发现不允许选择文本的唯一方法是禁用控件。在这种情况下,我无法弄清楚如何将背景颜色从默认灰色更改为白色。此外,当控件被禁用时,我从richedit免费获得的所有可点击链接功能都将停止工作。

你会说我的选择是什么?我非常警惕尝试使用TextOut进行自己的控制。这可能会让我想哭。

编辑: 到目前为止,我没有考虑允许用户选择文本作为选项,因此只读模式似乎没有用。我就这样计划好了。我绝对希望那里没有一个闪烁的插入符号,所以我四处寻找并发现我可以在richedit的WM_SETFOCUS上调用HideCaret(通过继承它)并返回0.这样就摆脱了插入符号。具有讽刺意味的是,这也摆脱了用鼠标选择任何东西的能力,这几乎就是我首先想要的行为。我不知道我是否完全反对禁止选择。我会回到那个。现在剩下的就是弄清楚当我将鼠标悬停在文本上时是否可以覆盖光标图像的行为。

2 个答案:

答案 0 :(得分:2)

您可以使用Webbrowser control,只需构建显示所需内容的HTML。

答案 1 :(得分:0)

我讨厌禁用控件的选项,为什么不让我有权选择要复制的文本的一部分。

无论如何,你可以将颜色设置为接近白色FEFEFE,它应该可以工作,而不是纯白色。

RichEdit控件是否具有'只读'模式,将停止输入但是选择文本并单击链接。