我已经把文字和位图用m_richedit1.Copy, 放进了剪切版, 并且在word里ctrl+v试了试, 剪切板里的数据是正确的,在word里能正确显示.但在另一个富文本控件m_richedit2.PasteSpecial(::RegisterClipboardFormat(CF_RTF)); 却不行, 只能把文本信息贴上, 位图信息没了.相关代码如下:
m_richedit1.SetSel(0, -1);  // 全选,包括文字和位图
m_richedit1.Copy();
 
m_richedit2.SetSel(-1, -1);  // 在2的后面追加文字和位图
m_richedit2.PasteSpecial(::RegisterClipboardFormat(CF_RTF));

解决方案 »

  1.   


    Q220844:How to insert a bitmap into an RTF document using the RichEdit control in Visual C++ 6.0
    http://support.microsoft.com/default.aspx?scid=kb;en-us;220844
    http://www.codeguru.com/Cpp/controls/richedit/article.php/c2417/
    http://www.codeguru.com/Cpp/controls/richedit/article.php/c5383/
      

  2.   

    谢谢楼上的兄台, 不过那不是我要的答案. 因为你说的办法都是通过画"位图对象",而我要的是粘贴"rtf格式串","rtf格式串"里有的不光是位图,还包括文本/文件字节流/OLE对象字节流, 所以最主要是教我如何m_richedit2.PasteSpecial(xxxx).
      

  3.   

    可以试试建立你自己的数据结构格式
    然后用RegisterClipboardFormat注册该格式。。
    然后GetClipboardData
      

  4.   

    三兄, 我明白你说的方法, 是这样的, rtf数据已经正确的放到剪切板里了. 我的麻烦是vc.net的那个CRichEditCtrl不能PasteSpecial图片. 原因不在剪切板, 而是在CRichEditCtrl, 三兄第一次说的插位图的方式也不合适,因为我得确定插位图的位置啊, 比如位图被文字包围了,这个办法就不好用了。