CRichEditCtrl 与 CEdit 不同之处
来源:互联网 发布:软件部职责要求 编辑:程序博客网 时间:2024/06/05 15:29
我原来的代码是使用的 CEdit ,可是 后来为了能够在不同的行显示不同的颜色,使用了 CRichEditCtrl
这两个控件的函数和使用方法有很多相似之处,那么我就直接将老代码复制过来用了。
那么,问题来了。 RichEdit 控件表现得“不正常”
1,发现行数不对。
GetLineCount() 在没有任何数据时,也会返回1
2,发现获得的数据也不对。
GetLine() 获得的每行数据中,长度都多了1,而且得到的数据也是多一个 '\r'
为了旧代码能够工作,我继承了一个类 CMyRichEditCtrl::CRichEditctrl,
并且在自己的类中,重新写了 GetLineCount GetLine 这两个函数,来“纠正”错误
后来发现问题越来越多,比如 定位获得的字符不对,根本没办法做下去了!
后来我觉得自己这个思路是不行的,RichEdit 控件本身虽然行为不同,但是我把它“纠正”,可能并不是正确的思路。
1) GetLineCount 并没问题,只是说 RichEdit 控件在最初就给了一个没有字符的空行而已。
2)GetLine获得的数据虽然多了一个\r,估计也是为了处理方便,这样可以将不同的行复制到一起时,就不需要自己再添回车符了。
3)LineLength 这个函数,不是原来我以为的,参数是行号。
而是要先用 LineIndex 取得该行的第一个字符的 index, 来作为它的参数。
4 ) 为了方便获得最后一个字符的位置,特写了个函数
int CMyRichEditCtrl::GetLastCharPos(){int nLineIndex = LineIndex(GetLineCount() - 1);int nLastLen = LineLength(nLineIndex);return nLineIndex + nLastLen;}
阅读全文
0 0
- CRichEditCtrl 与 CEdit 不同之处
- CEdit和CRichEditCtrl的一点不同
- CRichEditCtrl
- CRichEditCtrl
- CRichEditCtrl
- CRichEditCtrl
- [MFC][CEdit][基本函数]CEdit::GetLine与CEdit::LineIndex
- CEdit与键盘
- CEdit回车与DefaultButton
- UpdateData与CEdit
- CRichEditCtrl系列讲堂8 解决CEdit/CRichEdit中SetSel错位或者位置判断错误的问题
- CentOS与Ubuntu不同之处
- Snackbar与Toast不同之处
- opencv3 与opencv2不同之处
- CEdit 与 CRichEdit 使用技巧
- CEdit 样式与消息 解析
- CEdit
- CEdit
- 基础的文件下载
- keil c51问答
- boost 序列化
- 2017/11/23
- SqlServer 查看死锁的进程
- CRichEditCtrl 与 CEdit 不同之处
- [bzoj1010]:[HNOI2008]玩具装箱toy
- 各种加密算法简介及其Java实现
- git命令大全(非常齐全)
- 放弃去FBI的机会,在美做了2年数据研究工作,如今回国创业,他把全球最顶级的智能预测算法带到了国内
- JSONObject、JSONArray方法使用详解
- 大数据24小时:亚马逊AWS推出机密云服务,猎豹移动CTO范承工宣布离职
- MySQL嵌套事务的讨论
- 女神推荐, 卡片,广告图 ,点击查看更多