读文件 过程中 调用SetWindowText 你第一种写法 Old_str = str1; 那么每次读完一行SetWindowText都是设置内容为当前读的那行第二种写法 Old_str += str1; 那么每次读完一行SetWindowText都是设置内容为前面所有行的内容你的逻辑就是这样 结果就是这样有什么问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SetWindowText 不是追加 是设置标题 这些传什么 标题就更新为什么... while( file.ReadString( str1 ) ) { <span style="color: #FF0000;">Old_str += str1;</span> Old_str += "\r\n";// GetDlgItem( IDC_EDIT1 )->SetWindowText( Old_str ); } GetDlgItem( IDC_EDIT1 )->SetWindowText( Old_str ); 大侠 ,为什么呢? 如果我在循环中 PostMessage 给编辑框 怎么样?还是不理? 这位大侠, 为什么就不能 读一行 SetWindowText就 设入一行到编辑框呢? 难道有缓存机制? 不是 “不能 读一行 SetWindowText” 而是效率 问题, 因为 读文件 这么快, 人 眼 看 不过来的。 那为什么我打了断点 ,然后再看 编辑框 始终没有第一行 内容 就算是 跑到了SetMessageText这行,还是不会有第一行显示 都没有 ,这个跟效率没关系了吧 , 然后循环第二次 再调用第二行 SetMessageText有第二行内容 //Old_str = str1 ;// 以前的 丢了 !!!! Old_str += str1; Old_str += "\r\n"; 我打的断点,第一次 到SetWindowText 时 编辑框 没内容, 然后又到循环while断点处 然后才下来 ,这之前 跟覆盖没关系 ,我都执行第二次ReadString 怎么会丢呢。。呵呵, 我意思是 在执行 第一次readString 时 就已经 在编辑框没有内容。。不信你试试 SetWindowText没有缓存的说法,之所以没有循环一次就显示一次的内容,是因为UI线程还在循环中,没有去自绘,所以没有显示出来。while( file.ReadString( str1 ) ){ Old_str += str1; Old_str += "\r\n"; GetDlgItem( IDC_EDIT1 )->SetWindowText( Old_str ); GetDlgItem( IDC_EDIT1 )->RedrawWindow();} 只能说楼主没表达好。SetWindowText 是向IDC_EDIT1发送的一个WM_SETTEXT消息,并不立即处理,想要立马显示可用15楼的方法调用RedrawWindow。但是第一种方法你能看到的也怕是只有456,因为读取出123再显示再读取456再显示这个过程很快,你根本看不到123。或许楼主可以用ListBox来显示。 对,UI线程 还在循环里!就是这样!大侠,UI线程可不可以理解为这个应用的线程? VC如何将一个Unicode的Cstring转成ASCII码 怎样给文件夹加口令? 动态创建的树控件如何响应右键消息 希望大家不要被第二书店给骗了 请高手推荐几本介绍图象文件格式的书 请问怎样把CObArray中的字符(汉字或英文)串转换成点阵数组记录到CByteArray中? 数据转换 fd_set建立的socket为什么总是卡? 窗口类的设置问题? 传输丢数据怎么办啊? 高分求急救 求问关于MD5算法类的用法 请问如何用MFC实现当密码输入次数超限时等待30分钟才可再次登录?
{
<span style="color: #FF0000;">Old_str += str1;</span>
Old_str += "\r\n";
// GetDlgItem( IDC_EDIT1 )->SetWindowText( Old_str );
}
GetDlgItem( IDC_EDIT1 )->SetWindowText( Old_str );
大侠 ,为什么呢? 如果我在循环中 PostMessage 给编辑框 怎么样?还是不理?
这位大侠, 为什么就不能 读一行 SetWindowText就 设入一行到编辑框呢? 难道有缓存机制?
Old_str += str1;
Old_str += "\r\n";
while( file.ReadString( str1 ) )
{
Old_str += str1;
Old_str += "\r\n";
GetDlgItem( IDC_EDIT1 )->SetWindowText( Old_str );
GetDlgItem( IDC_EDIT1 )->RedrawWindow();
}
SetWindowText 是向IDC_EDIT1发送的一个WM_SETTEXT消息,并不立即处理,想要立马显示可用15楼的方法调用RedrawWindow。
但是第一种方法你能看到的也怕是只有456,因为读取出123再显示再读取456再显示这个过程很快,你根本看不到123。
或许楼主可以用ListBox来显示。
对,UI线程 还在循环里!就是这样!大侠,UI线程可不可以理解为这个应用的线程?