一个在RichEdit中添加表情图象的类,一个在RichEdit中添加表情图象的类
【 tulaoshi.com - C语言心得技巧 】
一个在RichEdit中添加表情图象的类
作者:中原工学院 刘翔
下载源代码
说明
本文根据VC知识库《在线杂志》的第30期的一篇文章:《类似 MSN 信息发送框的制作》,介绍了一个可以在RichEdit中添加表情图象的类CFaceEdit。 以下是使用这个类的程序截图:
图一 CFaceEdit类的使用
使用方法
我们可以先看一下它的使用方法:
//将对话框类成员变量由CRichEditCtrl改为CFaceEditCFaceEdit m_FaceEdit;//自定义一组表情CString pSymbol[] = {":)", ":(", ";)", ":0", ";-)"};//表情对应的图象IDUINT nIDBmp[] = { IDB_BITMAP1, IDB_BITMAP2, IDB_BITMAP3, IDB_BITMAP4, IDB_BITMAP5};m_FaceEdit.Init(5, pSymbol, nIDBmp);......m_FaceEdit.SetText("Visual Studio 包括许多示例:),用以说明开发人员为.NET 平台;)创建的应用程序:-) 。");也可以以位图文件的形式导入位图:
CString sBmpFile[] = {"reskid.bmp", "ressad.bmp", "resshowoff.bmp", "resquip.bmp", "resmaze.bmp"};m_FaceEdit.Init(5, pSymbol, sBmpFile);...m_FaceEdit.SetText("Visual Studio 包括许多示例:),用以说明开发人员为.NET 平台;)创建的应用程序:-) 。");插入图象的主要原理,是由《类似 MSN 信息发送框的制作》一文中提供的InsertBitmap()函数实现的。该函数可以通过指定图象的ID插入图象,或通过图象文件的路径来插入图象。
/*-----------------------------------------------------------------------------* 函数名 :SetTextWithFace** 功能 :实现插入图象的算法函数。* 实现原理: 假设:CString pSymbol[] = {":)", ":(", "#", "AK47", ":-)"}; 先将包括表情符号的文本( 如:"haha:)" )直接显示到CRichEditCtrl中, 然后选定其中的表情符号( 如:":)" ),再调用InsertBitmap函数 实现插入,详见注释-----------------------------------------------------------------------------*/void CFaceEdit::SetTextWithFace(CString str){ CString *pstr = new CString[m_nfaceCount]; for(int n = 0; n<m_nfaceCount; n++) { pstr[n] = m_pSymbol[n]; } SetWindowText(str); int nFaceCount = 0; //str中共有多少个表情。 stFace faceNode; //faceNode中存储的是在哪个位置插入,插入哪一个表情。 vector <stFace vecFace; //vecFac
来源:http://www.tulaoshi.com/n/20160129/1484078.html
看过《一个在RichEdit中添加表情图象的类》的人还看了以下文章 更多>>