关闭

CRichEditCtrlEx支持静态表情聊天类的使用

标签: 聊天im聊天scrollrtf扩展2010
5526人阅读 评论(31) 收藏 举报
分类:

本文作者:无幻
博客地址:http://blog.csdn.net/akof1314

 

平时我们在做IM聊天之类的软件的时候,一般都会使用Rich Edit控件来作为聊天编辑框和聊天记录框的控件,在之前的VC知识库看过《类似 MSN 信息发送框的制作(上)》、《类似 MSN 带转义字符的信息发送框的制作(下)》、《一个在RichEdit中添加表情图象的类》学到不少东西,在Visual Studio 2008 SP1下扩展了些功能,比如解码转义字符、编码转义字符、自动检测超链接、聊天记录框的用户内容和信息内容颜色和缩进分开显示等等,加上原来的插入位图表情、右键菜单、表情拾取器、RTF输入输出等等,可以符合基本的聊天控件要求了。见下图效果所示:

这是Unicode版本,如有需要的请自行修改其他版本。下面以Visual Studio 2008 SP1环境介绍使用方法:
1.新建一个基于对话框工程,名称为TestCoolChat,为Unicode字符集;
2.将素材img文件夹放在工程下面,导入InnerButton.h、InnerButton.cpp、BmpPicker.h、BmpPicker.cpp、BmpContainer.h、BmpContainer.cpp、RichEditCtrlEx.h、RichEditCtrlEx.cpp、oleimpl2.h到工程方案;
3.在窗体上放一个“表情选择”按钮、“发送”按钮和两个RichEidt控件,分别作为聊天编辑框和聊天记录框,设置它们的属性其MultilineTruewant returnTrueVertical ScrollTrue,把聊天编辑框做为聊天记录框的下一个TAB键顺序控件,在应用程序实现文件里面添加AfxInitRichEdit2(),分别为两个RichEdit控件添加变量:

CRichEditCtrlEx m_RichEdit; 
CRichEditCtrlEx m_RichLog; 

为“选择表情”按钮添加变量:

CBmpPicker m_BmpPicker; 

在对话框初始化函数OnInitDialog()里面添加如下代码:

CString strFileName;  
for(int i=1;i<21;i++)    //加载表情图片  
{  
    strFileName.Format(_T("img//%d.bmp"),i);  
    m_BmpPicker.AddBitmap(strFileName);          
}  
m_RichLog.SetType(CHATLOG);//设置聊天记录框类型  

4.添加“选择表情”按钮单击事件:

void CTestCoolChatDlg::OnBnClickedButton1()  
{      
    int index=m_BmpPicker.GetCurrentBitmapIndex();  
    m_RichEdit.InsertBitmap(HBITMAP(*m_BmpPicker.GetBitmapAt(index)),index);      
}  

5.添加“发送”按钮单击事件:

void CTestCoolChatDlg::OnBnClickedButton5() 

    CHARFORMAT cf; 
    m_RichLog.AddMessageUser(_T("天使之泪"),RGB(0,128,64)); 
    m_RichEdit.GetDefaultCharFormat(cf); 
    m_RichLog.AddMessgaeText(m_RichEdit.EncodeRichMessage(),cf.szFaceName,cf.yHeight/20,(cf.dwEffects & CFE_BOLD),(cf.dwEffects & CFE_ITALIC),(cf.dwEffects & CFE_UNDERLINE),cf.crTextColor,&m_BmpPicker); 
    m_RichEdit.SetWindowText(_T("")); 
    m_RichEdit.SetFocus(); 

 

示例源代码:http://download.csdn.net/source/3278764 (1.2版本)

 

更新日志:

2011年5月14日:发布1.2版本,修改内存泄露问题
2010年11月9日:修改复制粘贴出现的问题

 


 

0
0
查看评论

CRichEditCtrlEx支持静态表情聊天类1.2

  • 2011-05-14 13:44
  • 1.14MB
  • 下载

RichEdit控件的范例

RichEditCtrlEx.h C/C++ code ///////////////////////////////////////////////////////////////////////////// // Name: RICHEDITCTRLEX.H // ...
  • penjie0418
  • penjie0418
  • 2012-07-30 15:57
  • 1330

CRichEditCtrlEx支持静态表情聊天类的使用

本文作者:无幻 博客地址:http://blog.csdn.net/akof1314   平时我们在做IM聊天之类的软件的时候,一般都会使用Rich Edit控件来作为聊天编辑框和聊天记录框的控件,在之前的VC知识库看过《类似 MSN 信息发送框的制作(上)》、《类似 MSN 带转义...
  • liubin15989534919
  • liubin15989534919
  • 2013-11-22 11:01
  • 673

qq聊天界面七:表情的发送接收(用富文本现实)

先预览一下效果先定义一个包含反射的ImageGettter/** * 用于解析富文本中的表情图片 */ mImageGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { ...
  • heinika
  • heinika
  • 2015-09-01 20:29
  • 1232

[Android通信]基于socket的聊天app(五):收发表情

效果图: 1.点击表情按钮,弹出表情选择的列表,再次点击表情按钮,关闭列表。这个比较简单,就是设置GridView的可见性了。 下面给出界面布局文件: <LinearLayout xmlns:android="http://schemas.android.com...
  • lyh916
  • lyh916
  • 2015-10-18 22:28
  • 1219

Android学习笔记:完整实例实现QQ表情的发送和接收

在自己做一个聊天应用练习的时候,需要用到表情,于是就想着模仿一下QQ表情,图片资源完全copy的QQ.apk,解压就可以得到,这里不细说。 下面将该应用中的表情模块功能抽离出来,以便自己以后复习回顾。。 先看一下效果图: 首先进入界面:(完全仿照QQ)   点击一下上面的表情...
  • duancanmeng
  • duancanmeng
  • 2012-06-19 17:07
  • 25879

UGUI表情系统解决方案

聊天是游戏中必不可少的功能,发送表情也是聊天系统的一个重要组成部分。笔者的项目中使用UGUI开发UI,在制作表情系统时也遇到了同样的问题,可是UGUI中的Text组件本身并不支持图文混编。为此,笔者提供了一套解决方案,供大家参考。
  • UWA4D
  • UWA4D
  • 2017-04-11 17:54
  • 833

聊天界面的制作(三)——表情列表发送功能

基本功能1. 自定义标题栏。(标题栏不做任何功能)2. 有左右发送按钮。(这个只能自己和自己聊天哦,所以有左右发送按钮)   (1)点击左边按钮发送按钮,在ListView的左侧显示。   (2)点击右边按钮发送按钮,在ListView的右侧显示。    3.有表情发送按钮。   (1)...
  • To_be_Designer
  • To_be_Designer
  • 2015-09-01 22:10
  • 42746

C#聊天表情选择框ImageListPopup

在NET开发平台下,做IM需要选择表情框的时候,可以利用ImageListPopup这个来快速做出自己的表情选择框
  • akof1314
  • akof1314
  • 2010-11-18 20:10
  • 5675

Android 支持表情功能

概述1.原理和实现思路2.表情图片显示3.表情面板4.表情的输入框插入和删除5.表情添加脚本Android中表情功能,一般都不是用ImageView去设置图片实现的, 表情一般会嵌套在文本之中,那么如何实现呢,这里就介绍一下其中的原理,此外还有相关功能的实现思路和具体代码1.原理和思路a.表情内容...
  • Army_Jun
  • Army_Jun
  • 2016-03-31 10:51
  • 1081
    个人资料
    • 访问:3549977次
    • 积分:36054
    • 等级:
    • 排名:第137名
    • 原创:402篇
    • 转载:88篇
    • 译文:5篇
    • 评论:3424条
    个人说明
    联系方式:
    文章存档
    最新评论