【显示cstring到edit的小问题】
发送邮件运行时 信息在右边 不是一条一条显示
而是 发送时 什么也不显示 然后等完了
一下子全部显示出来 代码如下
C/C++ code
void CAPIMailDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 int i; CString tmp; UpdateData(true); m_message = "开始发送邮件!\r\n\r\n"; //UpdateData(false); GetDlgItem(IDC_EDITSHOW)->SetWindowText(m_message); //::MessageBox(NULL,"开始发送邮件!","提示", MB_OK); for (i=0;i<atoi(m_cishu);i++) { tmp.Format("%d",i+1); m_message +="正在发送第" + tmp + "封邮件。\r\n"; //UpdateData(false); GetDlgItem(IDC_EDITSHOW)->SetWindowText(m_message); SendMail(); m_message +="第" + tmp + "封邮件发送完毕。\r\n\r\n"; //UpdateData(false); GetDlgItem(IDC_EDITSHOW)->SetWindowText(m_message); } m_message += m_cishu + "封邮件发送完毕!\r\n\r\n"; //UpdateData(false); GetDlgItem(IDC_EDITSHOW)->SetWindowText(m_message); AfxMessageBox("发送完毕!"); }
不管是用 UpdateData(false);
还是
GetDlgItem(IDC_EDITSHOW)->SetWindowText(m_message);
都是这样
作者: bluestar2009 发布时间: 2011-06-14
你试试 UPDATEDATA(TRUE)
不过会闪烁
不过会闪烁
作者: piont_s21 发布时间: 2011-06-14
GetDlgItem(IDC_EDITSHOW)->SetWindowText(m_message);
这个在循环外,当然一下子全出来,加到里面就好了
这个在循环外,当然一下子全出来,加到里面就好了
作者: hustlaofan 发布时间: 2011-06-14
把发送部分代码放到新线程里去处理,不然阻塞了主线程处理
作者: johnroot 发布时间: 2011-06-14
UpdateData(false);或者是true是逻辑问题,不管闪烁问题。
你的代码没有闪烁问题。如果真的闪了,也无所谓的。
可以用SetRedraw(FALSE)一类的方法处理这种所谓的闪烁。
你的代码没有闪烁问题。如果真的闪了,也无所谓的。
可以用SetRedraw(FALSE)一类的方法处理这种所谓的闪烁。
作者: healer_kx 发布时间: 2011-06-14
是UpdateWindow()
没细看 害人啊
没细看 害人啊
作者: piont_s21 发布时间: 2011-06-14
setwindowtext 也是发送消息
你设置完 UpdateWindow() 更新一下
免得下一次的数据把这一次的冲掉
可以试试
你设置完 UpdateWindow() 更新一下
免得下一次的数据把这一次的冲掉
可以试试
作者: piont_s21 发布时间: 2011-06-14