天天看点

MFC中CEdit控件实现多行,并且可在界面进行修改

首先给定CEdit控件一个ID,并且分配CString 类型的变量m_str与vector<CString> 类型的变量m_vector,并且定义一个button按钮,点击button按钮为CEdit控件选择路径。定义临时变量m_str1,m_str1 = dlg.getfilename , m_vector.pushback(m_str) ;m_str += m_str1+ "\r\n"。对CEdit控件添加OnEnChangeEdit函数,代码为

UdateData(TRUE);
int num = m_str.Replace(_T("\r\n"), _T("\n"));//确定m_str中有几个"\r\n",以实现对m_str的分割, 并将"\r\n"替换为"\n"
CString m_tem;
m_vector.clear();//清空vector变量
if(num == 0)//说明修改CEdit控件后只有一个路径
{
    m_vector.pushback(m_str.Trim());
}
else
{
    for(int i = 0; i < num; i++)
    {
        AfxExtractSubString(m_tem, m_str, i, '\n');//以第0个"\n"为分割界线将m_str分割
        m_vector.pushback(m_tem);
     }
}
m_str.Replace(_T("\n"), _T("\r\n"));//最后将"\n"替换为"\r\n",以保证在CEdit控件中显示的格式规范
UpdateData(FALSE);
           

这样便实现了该功能