接下来是CRichEditCtrl类的LineLength方法的正确使用。
顾名思义,LineLength方法的作用是获取CRichEditCtrl的某一行的长度。该函数的原型如下 int LineLength(int nLine = -1) const; 这里的nLine是Index,也就是索引。我今天使用时理所当然地认为该索引就是行索引,就这样使用:
for (i=0;i < nLineCount;i++)
{
nLineLength = pmyRichEditCtrl->LineLength(i);
……
}
结果得到的总是第一行的长度,超级郁闷,百思不得其解。
还得诉诸网络啊~
事实上这里参数nLine的含义跟我们平常接触到的大多数概念不完全一样,它并不是行数,而是该rich edit control中的字符位置,根据此位置计算位于第几行,该函数就获取的是第几行的长度,如果给出的值为-1,则获取的是当前行(光标所在行)的长度。正确的写法应该是:
for (i=0;i < nLineCount;i++)
{
nLineLength = pmyRichEditCtrl->LineLength(pmyRichEditCtrl->LineIndex(i));
……
}
这样就搞定了。
顾名思义,LineLength方法的作用是获取CRichEditCtrl的某一行的长度。该函数的原型如下 int LineLength(int nLine = -1) const; 这里的nLine是Index,也就是索引。我今天使用时理所当然地认为该索引就是行索引,就这样使用:
for (i=0;i < nLineCount;i++)
{
nLineLength = pmyRichEditCtrl->LineLength(i);
……
}
结果得到的总是第一行的长度,超级郁闷,百思不得其解。
还得诉诸网络啊~
事实上这里参数nLine的含义跟我们平常接触到的大多数概念不完全一样,它并不是行数,而是该rich edit control中的字符位置,根据此位置计算位于第几行,该函数就获取的是第几行的长度,如果给出的值为-1,则获取的是当前行(光标所在行)的长度。正确的写法应该是:
for (i=0;i < nLineCount;i++)
{
nLineLength = pmyRichEditCtrl->LineLength(pmyRichEditCtrl->LineIndex(i));
……
}
这样就搞定了。