2

我希望能够在消息框中显示格式化文本(如粗体文本、项目符号、斜体等)。

我遇到了这篇精彩的文章,但似乎无法让它发挥作用。我在同一个链接上使用演示应用程序。

有人可以帮我吗?我试过调试/理解该代码是徒劳的。

约束:(不是我的选择)

  • 必须与 Windows XP 兼容。
  • 我正在使用 Visual C++ 6。

它应该如何显示:

它应该如何显示


它的实际显示方式:

在此处输入图像描述

4

2 回答 2

3

只需使用 RichEdit2 控件创建一个对话框弓...

在 InitInstance 中,添加以下调用:

// Init RichEdit Library

AfxInitRichEdit2();

在您的对话框中,为 RichEdit 控件创建一个变量并将其更新为:

// Turn Word Wrap on (based on window width)

m_RichEditMsg.SetTargetDevice( NULL, 0);

// Set Base Text

strText = "{\\rtf1\\ansi\\fs20 ";
strText += "{\\colortbl;\\red0\\green0\\blue0;\\red0\\green0\\blue255;\\red0\\green255\\blue255;\\red0\\green255\\blue0;\\red255\\green0\\blue0;}";
    strText += "{\\f1\\cb1\\cf2\\b Main Title} \\par\\par \\fs18 Other text to add {\\b In Bold} no more in bolb ... \\par";
str.Format( "\\par Id: {\\b %s}", m_strProgId);
strText += str;
strText+= "\\par \\par {\\f1 \\b Please Confirm ...} \\par}";

// Update Controls

m_RichEditMsg.SetWindowText( strText);

只需构建您自己的信息,您就会获得粗体、颜色、...

于 2013-03-16T12:37:01.720 回答
0

多亏了 DavidK 非常有用的建议,我已经解决了这个问题(请参阅对问题的评论)。Windows 2000的FIX注释巧妙地解决了这个问题。

于 2013-05-05T15:52:13.307 回答