MyEditerView.h
资源名称:edit.rar [点击查看]
上传用户:icamtech05
上传日期:2020-11-24
资源大小:10883k
文件大小:3k
源码类别:
编辑框
开发平台:
Visual C++
- // MyEditerView.h : CMyEditerView 类的接口
- //
- #pragma once
- #include <map>
- class CMyEditerCntrItem;
- class CMyEditerDoc;
- class CMyEditerView : public CRichEditView
- {
- enum ChangeType { ctUndo, ctUnknown, ctReplSel,
- ctDelete, ctBack, ctCut, ctPaste, ctMove };
- struct Color
- {
- COLORREF crClr;
- bool bBold;
- };
- CMap<CString, LPCTSTR, int, int> m_mpKeyword; // 关键字映射
- // 变量名-〉变量类型
- CMap<CString, LPCTSTR, int, int &> m_mpVariable; // 变量定义映射
- // 函数名 + 变量类型累积-〉区分
- CMap<CString, LPCTSTR, int, int &> m_mpFunction; // 函数定义映射
- int m_nLineCount; //正在编辑的文本总行数
- int m_nCharTabWidth; //Tab宽度,以Point表示
- int m_nCharSpaceWidth; //空格宽度,以Point表示
- BOOL m_bRealReturn; //指示一行是否为硬回车
- int m_nCurrentLine; //取当前光标所在行
- ChangeType m_changeType; // 文本改变的类型
- CHARRANGE m_crOldSel; // 原来选中范围
- CFont m_font; //RichEditCtrl字体
- LOGFONT m_lf; //语法编辑视字体
- int m_nCharNumberWidth; // 数字宽度
- int m_nLineHeight; // 行高
- int m_nTabSize; // Tab宽度,以空格数表示
- bool m_bInForceChange; // 正在强制转换
- //颜色值
- Color m_clrCommentColor; //注释色
- Color m_clrKeywordColor; //语法色
- Color m_clrNormalColor; //正常色
- Color m_clrStringColor; //字符串色
- Color m_clrCharColor; //字符常量色
- Color m_clrNumberColor; //数字色
- Color m_clrConstantColor; // 常量色
- protected: // 仅从序列化创建
- CMyEditerView();
- DECLARE_DYNCREATE(CMyEditerView)
- // 属性
- public:
- CMyEditerDoc* GetDocument() const;
- CRichEditCtrl * ctrlEdit;
- // 操作
- public:
- // 重写
- public:
- virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
- protected:
- virtual void OnInitialUpdate(); // 构造后第一次调用
- virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
- // 实现
- public:
- virtual ~CMyEditerView();
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- protected:
- // 控制从 iStart 到 iEnd 的格式
- void FormatText(int iStart, int iEnd);
- // 生成的消息映射函数
- protected:
- afx_msg void OnDestroy();
- afx_msg void OnEnProtected(NMHDR *pNMHDR, LRESULT *pResult);
- DECLARE_MESSAGE_MAP()
- public:
- // afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnEnChange();
- protected:
- // 初始化每一种颜色值
- void SetColor(COLORREF clr, bool bBold, Color & sc);
- // // 初始化颜色值
- void AddColors(void);
- private:
- // 添加关键字
- void AddKeyWords(void);
- public:
- // 为当前行设置格式
- void FormatLine(int iStart, int iEnd);
- protected:
- // 设置从 iStart 开始到 iEnd 结束的字符格式
- void SetFormat(int iStart, int iEnd, Color clr);
- // 初始化程序,将文件设为保护模式
- void Initialize(void);
- public:
- // 向后移动指针
- bool AddIndex(CString & strBuffer, int & Index);
- };
- #ifndef _DEBUG // MyEditerView.cpp 中的调试版本
- inline CMyEditerDoc* CMyEditerView::GetDocument() const
- { return reinterpret_cast<CMyEditerDoc*>(m_pDocument); }
- #endif