使用消息堆栈

时间:2015-06-18 09:47:00

标签: c++ wxwidgets

我尝试制作看上去很漂亮的消息查看器,其中消息按格式划分,其他背景为smth。类似。他们需要看起来像这样 - http://pastebin.com/GU1Lq087。我在wxWidgets中发现了解决这个问题的原因,以及为什么我不能使用它:

  1. wxHtmlWindow

    支持最小的HTML(一些标签)。但是这个问题很大 - html表示不会填充父窗口。因此,宽度= 100%的元素仅在标准窗口大小上具有100%宽度。甚至 p 标签也没有自动换行(长长的段落与垂直的scroolbar在一行中)。

  2. wxWebWiew

    我需要能够为其设置生成的HTML,但IE必须首先加载一些页面,我只能依赖IE背景。它有一些时间加载页面,即使我设置HTML字符串。

  3. wxRichText

    最适合我。但是我不能像HTML的 hr 那样绘制线条,或者更改整个消息块的背景(以区别于常见背景)

  4. 我需要显示this之类的消息。但我不知道如何以及哪种工具更好。

3 个答案:

答案 0 :(得分:1)

  1. 实现这一目标的一种方法是将wxWebView与WebKit后端一起使用,但我担心Windows只能使用IE的引擎。但是,有一个项目允许您使用Gecko引擎。我使用WebKit在我的应用程序中渲染聊天,它的效果非常好(虽然我使用的是Qt)。 (http://www.kirix.com/labs/wxwebconnect.html
  2. 您可以随时按常规方式执行 - 只需为单个消息创建单独的小部件(我认为它在wxWidgets中称为“框架”)。这样你就获得了无限的可能性。例如。您可以使用虚拟方法制作“AbstractMessage”,然后“AdministratorMessage”,“MOTD”等等将会变得轻而易举。

答案 1 :(得分:1)

wxRichText最适合我。但我不能像HTML的hr

那样划线

真的?你看过文档了吗?

http://docs.wxwidgets.org/trunk/overview_richtextctrl.html

以下是一些简单的想法:

一个。写下一行空白,加下划线。

http://docs.wxwidgets.org/trunk/classwx_rich_text_ctrl.html#a333b2e675617ed2299cf91e7c0dbd0d8

湾创建水平线的图像,使用WriteImage

显示它

http://docs.wxwidgets.org/trunk/classwx_rich_text_ctrl.html#a1315611c0741d03e852ee26eba3a9d94

答案 2 :(得分:1)

有趣的是,你想要的东西可以使用你提到的3个控件的任何来完成。使用wxHtmlWindow,您只需要使用wxWebView正确设置其大小我完全不了解您的问题,而使用wxRichTextCtrl您只需对区域使用单独的控件具有不同背景(你几乎可以肯定使用不同风格的单个控件,但使用几个控件似乎更简单)。