MFC中创立了两个静态文本框,用于显示从txt文件中读取的文本,如何能让两个文本框同时显示 20
显示方法:filePathName="e:/txt/caption2.txt"if(!file.Open(filePathName,CFile::modeRead))//...
显示方法:
filePathName="e:/txt/caption2.txt"
if(!file.Open(filePathName,CFile::modeRead)) //
{
MessageBox("can not open file!"); //Windows API函数,显示一个小对话框“can not open file!”
return;
}
CString strLine;
while(file.ReadString(strLine))
{
char *str = strLine.GetBufferSetLength(strLine.GetLength());
m_strText = _T(strLine); //m_strText为文本框1关联的变量
UpdateData(false);
delay(1); //每隔1秒循环显示一次
}
这是部分代码,目前的情况是只有当文本框1中的文字显示完后才能显示文本框2中的文字,文本框一中的文字在显示过程中无法对对话框中的其余控件进行任何操作,求解决方法,是不是delay的问题?还是别的什么问题?求各位高手赐教 展开
filePathName="e:/txt/caption2.txt"
if(!file.Open(filePathName,CFile::modeRead)) //
{
MessageBox("can not open file!"); //Windows API函数,显示一个小对话框“can not open file!”
return;
}
CString strLine;
while(file.ReadString(strLine))
{
char *str = strLine.GetBufferSetLength(strLine.GetLength());
m_strText = _T(strLine); //m_strText为文本框1关联的变量
UpdateData(false);
delay(1); //每隔1秒循环显示一次
}
这是部分代码,目前的情况是只有当文本框1中的文字显示完后才能显示文本框2中的文字,文本框一中的文字在显示过程中无法对对话框中的其余控件进行任何操作,求解决方法,是不是delay的问题?还是别的什么问题?求各位高手赐教 展开
2个回答
展开全部
如果你是用两个while顺序来做显示,那么,肯定是不能同时完成“逐行”刷新文本框。
用定时器做可以完成你的需求。
在上面代码所在区域保存文件句柄或字符串到类成员变量,然后SetTimer(1,1000);//1000毫秒间隔,在定时器OnTimer里面做每一次的显示即可(大致相当于两个循环体内部的代码)。
用定时器做可以完成你的需求。
在上面代码所在区域保存文件句柄或字符串到类成员变量,然后SetTimer(1,1000);//1000毫秒间隔,在定时器OnTimer里面做每一次的显示即可(大致相当于两个循环体内部的代码)。
追问
麻烦能再具体点么?之前没用过OnTime和SetTime,您说的“在上面代码所在区域保存文件句柄或字符串到类成员变量”,能否给个例子?万分感谢
追答
没法结合你的代码给例子,都是分散的代码。
百度搜“VC 定时器 OnTimer”,有很多讲解文章,不粘贴了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询