MFC中,文本编辑框字符串的,读取,截取,操作不能正常显示。
我的文本编辑框是IDC_EDIT1_MAC,定义变量是m_MAC。它里面的字符是扫描枪扫了设备的MAC号后显示出来的,现在我要对文本框中的字符串进行操作。我是这样做的:C...
我的文本编辑框是IDC_EDIT1_MAC,定义变量是m_MAC。它里面的字符是扫描枪扫了设备的MAC号后显示出来的,现在我要对文本框中的字符串进行操作。我是这样做的:
CString str;
CWnd *pEdit = GetDlgItem(IDC_EDIT1_MAC);
pEdit->GetWindowText(m_MAC);
CString str0=m_MAC.Mid(0,2);
CString str1=m_MAC.Mid(2,2);
CString str2=m_MAC.Mid(4,2);
CString str3=m_MAC.Mid(6,2);
CString str4=m_MAC.Mid(8,2);
CString str5=m_MAC.Mid(10,2);
str=str0+':'+str1+':'+str2+':'+str3+':'+str4+':'+str5;
str.Format("%s\r\n",str);
pEdit->SetWindowText(str);
pEdit->UpdateData(FALSE);
为什么编译能通过,但是文本框里面的字符串缺没有改变呢。 展开
CString str;
CWnd *pEdit = GetDlgItem(IDC_EDIT1_MAC);
pEdit->GetWindowText(m_MAC);
CString str0=m_MAC.Mid(0,2);
CString str1=m_MAC.Mid(2,2);
CString str2=m_MAC.Mid(4,2);
CString str3=m_MAC.Mid(6,2);
CString str4=m_MAC.Mid(8,2);
CString str5=m_MAC.Mid(10,2);
str=str0+':'+str1+':'+str2+':'+str3+':'+str4+':'+str5;
str.Format("%s\r\n",str);
pEdit->SetWindowText(str);
pEdit->UpdateData(FALSE);
为什么编译能通过,但是文本框里面的字符串缺没有改变呢。 展开
2个回答
展开全部
两个问题:
核心问题,你的代码在那个响应函数里面,是否触发了。在SetWindowText行设置断点,F5运行程序,看看是否触发断点。
m_Mac先判断一下长度再Mid比较安全;UpdateData是无用的干扰代码,要去掉。这些应该不影响显示,但不合理。
追问
我检查一下。不过我这个东东是要用在生产线的,不需要按键就触发事件,保证工人的工作效率。现在还在改进。
追答
先用一个简单的MFC对话框程序,测试代码有效性,再放到项目里面,可以知道消息触发的有效性。
参考另一边的回答,我的代码写到了按钮消息里面,点击按钮测试是没有问题的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询