FaceEdit.h
上传用户:dgvc2008
上传日期:2021-01-21
资源大小:65k
文件大小:2k
- /*--------------------------------------
- * Copyright (c) 2004
- * All rights reserved.
- *
- * 文件名称: FaceEdit.h
- * 摘 要: 类 CFaceEdit 声明部分
- *
- * 当前版本: 1.01 VC7版
- * 作 者: Flanker(刘翔)
- * 完成日期: 2004年10月26日
- * 修改日期: 2004年11月12日
- *
- * 使用:
- 在CxxxApp::::InitInstance()中添加:
- AfxInitRichEdit2();
- 以使用EditCtrl 2.0(VC7),注意,要使用EditCtrl 1.0(VC6),请使用本类的 VC6 版本。
- 使用CFaceEdit:
- //将对话框类成员变量由CRichEditCtrl改为CFaceEdit
- CFaceEdit m_FaceEdit;
- CString pSymbol[] = {":)", ":(", ";)", ":0", ";-)"};
- UINT nIDBmp[] = { IDB_BITMAP1, IDB_BITMAP2, IDB_BITMAP3, IDB_BITMAP4, IDB_BITMAP5};
- m_FaceEdit.Init(5, pSymbol, nIDBmp);
- m_FaceEdit.SetText("ha:(ha:0!");
- 或:
- CFaceEdit m_FaceEdit;
- CString pSymbol[] = {":)", ":(", ";)", ":0", ";-)"};
- CString sBmpFile[] = { "res\kid.bmp", "res\sad.bmp", "res\showoff.bmp", "res\quip.bmp", "res\maze.bmp"};
- m_FaceEdit.Init(5, pSymbol, sBmpFile);
- m_FaceEdit.SetText("ha:(ha:0!");
- --------------------------------------*/
- #pragma once
- struct stFace;
- class CFaceEdit : public CRichEditCtrl
- {
- public:
- //构造函数
- CFaceEdit() : m_nfaceCount(0), m_pSymbol(NULL), m_pIDBmp(NULL), m_pBmpFile(NULL), m_bEnableFace(TRUE)
- {
- }
- //析构函数
- ~CFaceEdit()
- {
- delete []m_pSymbol;
- if(m_pIDBmp != NULL)
- delete []m_pIDBmp;
- if(m_pBmpFile != NULL)
- delete []m_pBmpFile;
- }
- //用户自定义表情,“输入”
- void Init(int nfaceCount, CString *pSymbol, UINT *pIDBmp);
- void Init(int nfaceCount, CString *pSymbol, CString *pBmpFile);
- //工作函数,“输出”
- bool SetText(CString str, BOOL bEnableFace = TRUE);
- private:
- void SetTextWithFace(CString str);
- inline void InsertBitmap(stFace &face); //应用层的InsertBitmap
-
- int m_nfaceCount; //表情的数目
- CString * m_pSymbol; //表情符号
- UINT * m_pIDBmp; //指定图象,通过图象的ID
- CString * m_pBmpFile; //指定图象的另一种形式,通过文件形式
- BOOL m_bEnableFace; //显示到RichEdit中的文字是否要显示表情
- };
- struct stFace
- {
- int nPos; //要插入的位置
- int nFaceIndex; //要插入的图象的在上面数组中IDBmp的index
- int nLength; //字符表情的长度
- };