在使用CEdit控件的时候经常添加一个与CString类型的成员变量与这个控件关联,m_sEdit,使用m_sEdit我们就可以直接操作CEdit中的数据。因为这个变量是CString类型的,它只能实现一些与CString类相关的操作。
如果想灵活适用CEdit“多行数据”输入的时候,添加一个CString类型的成员变量就不是很好了,得添加一个CEdit类型的成员变量m_hwdEdit,这个变量就是我们画的这个控件,用CEdit的CEdit::GetLine()方法,就可以把指定行的数据放到一个缓存里面。
两种类型的成员变量是有区别的,一个是以数据为中心,而另一个是以控件为中心。
很简单:
m_Edit.GetLine(0,lpszBuffer);//读取edit控件中第一行文本存入lpszBuffer指向的字符串中,m_Edit是与edit控件关联的变量
可参考代码:
int i, nLineCount = m_myEdit.GetLineCount();//m_myEdit是与edit控件关联的变量
CString strText, strLine;
// Dump every line of text of the edit control.
for (i=0; i < nLineCount; i++)
{
// length of line i:
int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
m_myEdit.GetLine(i, strText.GetBuffer(len), len);
strText.ReleaseBuffer(len);
strLine.Format(_T("line %d: '%s'\n"), i, strText);
AFXDUMP(strLine);//输出得到的每行数据
}