VC/MFC 编辑框里面字符串的存放方式

       今天尝试了一下,从记事本复制粘贴数据进入编辑框,然后再对编辑框执行数据处理操作。
还是用GetAt()去获取字符串每个每个位置上的字符。开始由于对编辑框中的字符串存放格式不清楚,导致判断失误。
后来我自己重新编写了一段测试代码,打印出字符串中的存放方式:

 
 1 void CEditTestDlg::OnBnClickedButton1()
 2 {
 3     // TODO: 在此添加控件通知处理程序代码
 4     UpdateData(TRUE);
 5     int num = m_strNum1.GetLength();
 6     while(num--)
 7     {
 8     m_strNum2 += m_strNum1.GetAt(0);
 9     if ('\r' == m_strNum1.GetAt(0))
10     {
11         m_strNum2 += _T("R");
12         //m_strNum2 += '\r';
13     }
14     if ('\n' == m_strNum1.GetAt(0))
15     {
16         m_strNum2 += _T("N");
17         //m_strNum2 += '\n';
18     }
19     m_strNum1 = m_strNum1.Right(num);
20     
21     }
22     UpdateData(FALSE);
23 }

上面这是那段测试代码:
结果显示,编辑框中的字符串是这样存储的。
屏幕显示样子:
如:
32 54 67 87
54 89 67 23
09 67 34 67
实际存放形式:
32 54 67 87\r\n

54 89 67 23\r\n

09 67 34 67
\r:表示回车
\n:表示换行 
还有就是编辑框中没有响应WM_CAHR  ,WM_KEYDOWN ,WM_KEYUP的能力。
所以编辑框不支持,回车换行功能。
要实现该功能,需要在编辑框之前截获键盘消息,从而实现回车换行。

posted on 2013-08-19 22:56  陋室铭`  阅读(544)  评论(0)    收藏  举报

导航