今天尝试了一下,从记事本复制粘贴数据进入编辑框,然后再对编辑框执行数据处理操作。
54 89 67 23\r\n
还是用GetAt()去获取字符串每个每个位置上的字符。开始由于对编辑框中的字符串存放格式不清楚,导致判断失误。 后来我自己重新编写了一段测试代码,打印出字符串中的存放方式:
void
CEditTestDlg
::
OnBnClickedButton1
(
)
{
// TODO: 在此添加控件通知处理程序代码
UpdateData
(
TRUE
)
;
int
num
=
m_strNum1
.
GetLength
(
)
;
while
(
num
--
)
{
m_strNum2
+=
m_strNum1
.
GetAt
(
0
)
;
if
(
'\r'
==
m_strNum1
.
GetAt
(
0
))
{
m_strNum2
+=
_T
(
"R"
)
;
//m_strNum2 += '\r';
}
if
(
'\n'
==
m_strNum1
.
GetAt
(
0
))
{
m_strNum2
+=
_T
(
"N"
)
;
//m_strNum2 += '\n';
}
m_strNum1
=
m_strNum1
.
Right
(
num
)
;
}
UpdateData
(
FALSE
)
;
}
结果显示,编辑框中的字符串是这样存储的。 屏幕显示样子: 如: 32 54 67 87 54 89 67 23 09 67 34 67 实际存放形式: 32 54 67 87\r\n 09 67 34 67 \r:表示回车 \n:表示换行 还有就是编辑框中没有响应WM_CAHR ,WM_KEYDOWN ,WM_KEYUP的能力。 所以编辑框不支持,回车换行功能。 要实现该功能,需要在编辑框之前截获键盘消息,从而实现回车换行。 2013年8月19日22:44:23 by:陋室铭 |
VC/MFC 编辑框里面字符串的存放方式
最新推荐文章于 2020-09-08 10:06:00 发布