FaceEdit.h
上传用户:dgvc2008
上传日期:2021-01-21
资源大小:65k
文件大小:2k
源码类别:

RichEdit

开发平台:

Visual C++

  1. /*--------------------------------------
  2. * Copyright (c) 2004
  3. * All rights reserved.
  4. *
  5. * 文件名称: FaceEdit.h
  6. * 摘 要: 类 CFaceEdit 声明部分
  7. *
  8. * 当前版本: 1.01 VC7版
  9. * 作 者: Flanker(刘翔)
  10. * 完成日期: 2004年10月26日
  11. * 修改日期: 2004年11月12日
  12. *
  13. * 使用:
  14. 在CxxxApp::::InitInstance()中添加:
  15. AfxInitRichEdit2();
  16. 以使用EditCtrl 2.0(VC7),注意,要使用EditCtrl 1.0(VC6),请使用本类的 VC6 版本。
  17. 使用CFaceEdit:
  18. //将对话框类成员变量由CRichEditCtrl改为CFaceEdit
  19. CFaceEdit m_FaceEdit;
  20. CString pSymbol[] = {":)", ":(", ";)", ":0", ";-)"};
  21. UINT nIDBmp[] =  { IDB_BITMAP1, IDB_BITMAP2, IDB_BITMAP3, IDB_BITMAP4, IDB_BITMAP5};
  22. m_FaceEdit.Init(5, pSymbol, nIDBmp);
  23. m_FaceEdit.SetText("ha:(ha:0!");
  24. 或:
  25. CFaceEdit m_FaceEdit;
  26. CString pSymbol[] = {":)", ":(", ";)", ":0", ";-)"};
  27. CString sBmpFile[] =  { "res\kid.bmp", "res\sad.bmp", "res\showoff.bmp", "res\quip.bmp", "res\maze.bmp"};
  28. m_FaceEdit.Init(5, pSymbol, sBmpFile);
  29. m_FaceEdit.SetText("ha:(ha:0!");
  30. --------------------------------------*/
  31. #pragma once
  32. struct stFace;
  33. class CFaceEdit : public CRichEditCtrl
  34. {
  35. public:
  36. //构造函数
  37. CFaceEdit() : m_nfaceCount(0), m_pSymbol(NULL), m_pIDBmp(NULL), m_pBmpFile(NULL), m_bEnableFace(TRUE)
  38. {
  39. }
  40. //析构函数
  41. ~CFaceEdit()
  42. {
  43. delete []m_pSymbol;
  44. if(m_pIDBmp != NULL)
  45. delete []m_pIDBmp;
  46. if(m_pBmpFile != NULL)
  47. delete []m_pBmpFile;
  48. }
  49. //用户自定义表情,“输入”
  50. void Init(int nfaceCount, CString *pSymbol, UINT *pIDBmp);
  51. void Init(int nfaceCount, CString *pSymbol, CString *pBmpFile);
  52. //工作函数,“输出”
  53. bool SetText(CString str, BOOL bEnableFace = TRUE);
  54. private:
  55. void SetTextWithFace(CString str);
  56. inline void InsertBitmap(stFace &face); //应用层的InsertBitmap
  57. int m_nfaceCount; //表情的数目
  58. CString * m_pSymbol; //表情符号
  59. UINT * m_pIDBmp; //指定图象,通过图象的ID
  60. CString * m_pBmpFile; //指定图象的另一种形式,通过文件形式
  61. BOOL m_bEnableFace; //显示到RichEdit中的文字是否要显示表情
  62. };
  63. struct stFace
  64. {
  65. int nPos; //要插入的位置
  66. int nFaceIndex; //要插入的图象的在上面数组中IDBmp的index
  67. int nLength; //字符表情的长度
  68. };