WndText.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 界面窗口体系结构--文本窗口
  3. // Copyright : Kingsoft 2002
  4. // Author :   Wooy(Wu yue)
  5. // CreateTime: 2002-7-23
  6. ------------------------------------------------------------------------------------------
  7. *****************************************************************************************/
  8. #pragma once
  9. #include "WndWindow.h"
  10. #define WNDTEXT_ES_HALIGN_CENTRE 0x0001 //水平居中
  11. #define WNDTEXT_ES_HALIGN_RIGHT 0x0002 //水平靠右对齐
  12. #define WNDTEXT_ES_VALIGN_CENTRE 0x0004 //垂直居中
  13. #define WNDTEXT_ES_VALIGN_BOTTOM 0x0008 //垂直靠底对齐
  14. #define WNDTEXT_ES_HALIGN_FILTER (WNDTEXT_ES_HALIGN_RIGHT | WNDTEXT_ES_HALIGN_CENTRE)
  15. #define WNDTEXT_ES_VALIGN_FILTER (WNDTEXT_ES_VALIGN_BOTTOM | WNDTEXT_ES_VALIGN_CENTRE)
  16. #define WNDTEXT_ES_ALIGN_FILTER (WNDTEXT_ES_HALIGN_FILTER | WNDTEXT_ES_VALIGN_FILTER)
  17. #define WNDTEXT_ES_MULTILINE 0x0010 //多行
  18. //=================================
  19. // 文本窗口基础类
  20. //=================================
  21. class KWndText : public KWndWindow
  22. {
  23. public:
  24. KWndText();
  25. virtual int Init(KIniFile* pIniFile, const char* pSection);//初始化
  26. virtual void PaintWindow(); //绘制窗口
  27. int GetText(char* pBuffer, int nSize); //获取字符串内容
  28. void SetText(const char* pText, int nLen = -1); //设置文本文字
  29. void SetTextColor(unsigned int Color); //设置文本文字颜色
  30. void SetIntText(int nNumber, char Separator = 0); //设置文本串的内容为与表述所整数的字符串
  31. //设置文本串的内容为与表述所给两个整数的字符串,两个整数间以指定的字符分割
  32. void Set2IntText(int nNumber1, int nNumber2, char Separator);
  33. int SetTopLine(int nTopLine); //设置从文本串的第几行开始显示
  34. int GetLineCount() { return m_nLineCount; } //get line count of the text content
  35. void Clone(KWndText* pCopy);
  36. protected:
  37. void SetTextPtr(char* pText, int nBuffLen); //设置文本缓冲区指针
  38. private:
  39. int m_nFontSize; //字体大小
  40. unsigned int m_TextColor; //文字颜色
  41. unsigned int m_BorderColor; //文字边缘颜色
  42. char* m_pText; //文本缓冲区
  43. int m_nBuffLen; //文本缓冲区大小
  44. int m_nTextLen; //字符串的存储长度
  45. int m_nTopLine; //显示的头一行的行号,从0开始
  46. int m_nLineCount; //文本总的行数目
  47. };
  48. //=================================
  49. // 文本缓冲区长度为32的文本窗口类
  50. //=================================
  51. class KWndText32 : public KWndText
  52. {
  53. private:
  54. char m_Text[32];
  55. public:
  56. KWndText32();
  57. };
  58. //=================================
  59. // 文本缓冲区长度为80的文本窗口类
  60. //=================================
  61. class KWndText80 : public KWndText
  62. {
  63. private:
  64. char m_Text[80];
  65. public:
  66. KWndText80();
  67. };
  68. //=================================
  69. // 文本缓冲区长度为256的文本窗口类
  70. //=================================
  71. class KWndText256 : public KWndText
  72. {
  73. private:
  74. char m_Text[256];
  75. public:
  76. KWndText256();
  77. };
  78. //=================================
  79. // 文本缓冲区长度为256的文本窗口类
  80. //=================================
  81. class KWndText512 : public KWndText
  82. {
  83. private:
  84. char m_Text[512];
  85. public:
  86. KWndText512();
  87. };