CRichEditCtrlEx支持静态表情聊天类的使用
来源:互联网 发布:pe软件 编辑:程序博客网 时间:2024/06/06 00:26
本文作者:无幻
博客地址: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控件,分别作为聊天编辑框和聊天记录框,设置它们的属性其Multiline为True,want return 为True,Vertical Scroll为True,把聊天编辑框做为聊天记录框的下一个TAB键顺序控件,在应用程序实现文件里面添加AfxInitRichEdit2(),分别为两个RichEdit控件添加变量:
CRichEditCtrlEx m_RichLog;
为“选择表情”按钮添加变量:
在对话框初始化函数OnInitDialog()里面添加如下代码:
for(int i=1;i<21;i++) //加载表情图片
{
strFileName.Format(_T("img//%d.bmp"),i);
m_BmpPicker.AddBitmap(strFileName);
}
m_RichLog.SetType(CHATLOG);//设置聊天记录框类型
4.添加“选择表情”按钮单击事件:
{
int index=m_BmpPicker.GetCurrentBitmapIndex();
m_RichEdit.InsertBitmap(HBITMAP(*m_BmpPicker.GetBitmapAt(index)),index);
}
5.添加“发送”按钮单击事件:
{
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日:修改复制粘贴出现的问题
- CRichEditCtrlEx支持静态表情聊天类的使用
- CRichEditCtrlEx支持静态表情聊天类的使用
- CRichEditCtrlEx支持静态表情聊天类的使用
- BlueTooth聊天软件(支持表情和语音)
- 游戏中聊天表情的实现
- Android聊天软件的开发(六)--表情
- android qq聊天动态表情的实现
- 即时聊天表情功能的实现
- iOS YYText的使用笔记二(YYLabel聊天表情+文字并排)
- iOS YYText的使用笔记二(YYLabel聊天表情+文字并排)
- 使用TileList+TitleWindow组件开发聊天表情功能
- 使用TileList+TitleWindow组件开发聊天表情功能
- android聊天表情开发
- IOS_QQ表情聊天
- 仿微信聊天表情发送
- IOS_QQ表情聊天
- Android聊天表情开发
- Android_聊天_表情
- 郁闷无比的eclipse中文字符串bug
- 敏捷不是一种方法,而是一种心态
- zoj 1755 zoj 1514 zoj 1715(暂未解决)
- 水晶报表-分页
- 开发说用例
- CRichEditCtrlEx支持静态表情聊天类的使用
- Frozen GridView Header
- 影像注重情感 人像摄影师蜜丝佛陀专访
- qt4 hello world 例子
- 仅存的爱好
- 基于Ethernet的天气工作站
- 数据库原理(绪论)
- 引用 与 取地址 以及指针的关系
- 电子乐简史