最近写一个类似于QQ的聊天对话程序,需要在RichEdit控件中插入一些表情符号,很感谢那些在网络上公布源码的大侠们,让我学到很多。我主要看的是一篇重载CRichEditCtrl类的文章,把CRichEditCtrl类重载成CRichEditCtrlEx类,并添加了一些函数,具体定义如下,网上上应该很多人都看过这篇文章。
------------------------
以下为引用部分
------------------------
主要功能用CRichEditCtrl实现,像设置字体,设置字体颜色,字号等等CRichEditCtrl都提供了很完善的支持,我就不一一赘述了。CRichEditCtrl 主要的不足在于以下几个方面:(1).没有右键菜单 
(2).不能插入图片(这是实现转义字符显示的关键) 
(3).RTF格式输入输出不够方便(涉及到回调函数的递归调用) 
  我扩展了CRichEditCtrl类CRichEditCtrlEx实现了上述功能.参考了很多网上的文章,对所有公开源码的开发人员表示崇高的敬意!!2、实现右键菜单:
void CRichEditCtrlEx::OnRButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
//设置为焦点
SetFocus();
//创建一个弹出式菜单
CMenu popmenu;
popmenu.CreatePopupMenu();
//添加菜单项目
popmenu.AppendMenu(0, ID_RICH_UNDO, "&Undo");
popmenu.AppendMenu(0, MF_SEPARATOR);
popmenu.AppendMenu(0, ID_RICH_CUT, "&Cut");
popmenu.AppendMenu(0, ID_RICH_COPY, "C&opy");
popmenu.AppendMenu(0, ID_RICH_PASTE, "&Paste");------------------------------
引用部分完
-----------------------------
以上是我粘贴的部分代码,我现在面临的问题是,插入这些图标后,在此控件中拷贝粘贴一般性文字可以,但是,却不能拷贝粘贴图标内容,而QQ聊天对话框中是可以粘贴拷贝图标内容的。请高手给予指点,先谢谢了!

解决方案 »

  1.   

    ??
    http://www.codeguru.com/Cpp/controls/richedit/article.php/c2417/
      

  2.   

    To:壮志雄心
    其实您给我看的这篇文章正是我所摘抄文章的“原始文章”,当然,它同样出现我文章中所出现的问题。不过,还是很感谢您!
    还有,我发现如果继承CRichEditView类就不会出现类似问题,可是,我现在需要的必须是继承CRichEditCtrl类的,郁闷中
      

  3.   

    我下载了你摘抄文档的源码,试验了一下,和你说的一样,我调用CRichEditCtrl的CanPaste(CP_BITMAP)函数,发现返回结果是FALSE,也就是说粘贴操作不支持CP_BITMAP格式,现在,就需要解决如何让剪贴板支持CP_BITMAP格式了,我试验了很久,都不能成功。