如何在CRichEditCtrl中禁用RTF表格边框?

时间:2015-01-15 07:49:26

标签: visual-studio-2010 visual-c++ mfc rtf cricheditctrl

我遇到了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);

结果:

Output

我试图将单元格的边框宽度设置为0,将白色的边框颜色设置为0。

"\\clbrdrt\\brdrw0\\clbrdrl\\brdrw0\\clbrdrb\\brdrw0\\clbrdrr\\brdrw0"

 "\\clbrdrt\\brdrcf0\\clbrdrl\\brdcf0\\clbrdrb\\brdrcf0\\clbrdrr\\brdrcf0"

它无论如何都无效。结果总是一样的。

也许这里有人知道如何禁用它,显然是默认边框。我想禁用或隐藏此边框。也许在控制中有一个设置,我还没有发现。

1 个答案:

答案 0 :(得分:0)

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