数据库编程中,有时要保存一些复杂的文档,如果用HTML,可以保存文档的格式,但文档中的图片却要单独存放,比较麻烦。如果用RTF格式的话,就可以将所有内容存为一个整体,放到数据库中。但vs自带的RICHTEXTBOX控件,在处理表格时,如果单元格中的内容太多,不会自动折行,郁闷。打开写字板看看,人家是可以的,奇怪了。
上网查了一下,说写字板用的可能是msftedit.dll,而不是riched20.dll。我试着把system32目录下的msftedit.dll复制一份,改名成riched20.dll,替换原有的文件,试一试,还是不行。我想以前VB编程的时候也有一个COM的richtextbox,不知道还行不行,试一下,行了!太高兴了!但再打开word,文档不能可存,提示“内存不足,是否保存为挽救的文档”,显示是riched20.dll被替换了的缘故,恢复了该文件,word就正常了。
看来这是一个矛盾。我“灵机一动”,将msftedit.dll复制到应用程序目录下,改名为riched20.dll,运行,正常!
归结起来,有两点:
1、不用vs自带的richtextbox 控件,而是用com的richtextbox组件(即windows richtextbox control (sp4) richtx32.ocx 好像是这个文件名,在此system32目录下,没有话,到装了vb的机器上copy一个);
2、将msftedit.dll复制到应用程序目录下,改名为riched20.dll。如果你没有msftedit.dll文件,到装了windows xp或windows 2003的机器上复制一份。