如何在 CRichEditCtrl 中禁用 RTF 表格边框?
Posted
技术标签:
【中文标题】如何在 CRichEditCtrl 中禁用 RTF 表格边框?【英文标题】:How to disable RTF table borders in an CRichEditCtrl? 【发布时间】:2015-01-15 07:49:26 【问题描述】:我遇到了 CRichEditCtrl 的问题。我想使用表格来格式化要显示的生成文本。在 rtf 1.5 specs 它说,我必须指定一个表格边框来显示任何但显然 CRichEditCtrl 的一些默认设置仍然设置它们。
这段代码:
CString sDoc =_T("\\rtf1\\ansi\\deff0"
"\\trowd\\trgaph144 "
"\\cellx500"
"\\cellx3000"
"\\cellx5000"
"\\cellx7000"
"\\intbl 01 \\cell"
"\\intbl Hexachlorbenzol \\cell"
"\\intbl 500.00 mg \\cell"
"\\intbl WST \\cell"
"\\row"
"");
EDITSTREAM es;
es.dwCookie = (DWORD)&sDoc;
es.pfnCallback = MEditStreamInCallback;
edtInfo.StreamIn(SF_RTF, es);
结果:
我尝试将单元格的边框宽度设置为 0,将边框颜色设置为白色,设置为 0。
"\\clbrdrt\\brdrw0\\clbrdrl\\brdrw0\\clbrdrb\\brdrw0\\clbrdrr\\brdrw0"
或
"\\clbrdrt\\brdrcf0\\clbrdrl\\brdcf0\\clbrdrb\\brdrcf0\\clbrdrr\\brdrcf0"
这两种方法都不起作用。结果总是一样的。
也许这里有人知道如何禁用这个,很明显,默认边框。我想禁用或隐藏这个边框。可能控件里面有设置,我还没发现。
【问题讨论】:
如果您找到答案,请告诉我。我认为这是控制的一些问题。我可以正确格式化表格以隐藏或显示我想要的任何边框,并使用 Word 打开该 RTF 并正确显示。使用 Rich Edit 控件,它总是显示边框。 【参考方案1】:Rich Edit 3 控件始终显示带边框的表格。如果您希望控制边界,可以升级您的代码以使用 Rich Edit 4.1。如果您对表格做很多事情,您会发现 Rich Edit 4.1 更胜一筹。它支持单元格中的多个段落、单元格中的文本对齐等。
有关要加载的 DLL 和 Rich Edit 4.1 的类名,请参见 https://msdn.microsoft.com/en-us/library/windows/desktop/bb787873%28v=vs.85%29.aspx。 Rich Edit 4.1 可用于 Windows XP SP1 及更高版本。有关不同版本的更多信息,请参阅http://blogs.msdn.com/b/murrays/archive/2006/10/14/richedit-versions.aspx
【讨论】:
以上是关于如何在 CRichEditCtrl 中禁用 RTF 表格边框?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Unicode 支持添加到 CRichEditCtrl?