我在视内的OnTimer()中写了这段代码,当打开文件时,发现该文件已被其他进程打开,于是循环打开文件看是否成功,若成功则写入文件,代码如下:
CXXXView::OnTimer(...)
{
CStdioFile BilFile;
CString strFile=_T("C:\\abc.txt");
KillTimer();
BOOL bSuccess=FALSE;
CErrorDlg Dlg;
do
{
if(FileExist(strFile))
{
bSuccess=BilFile.Open(strFile,CFile::modeWrite,&e);
}
else
{
bSuccess=BilFile.Open(strFile,CFile::modeCreate|CFile::modeWrite,&e);
}
if (bSuccess==FALSE)
{
char strError[256];
memset(strError,0,256);
e.GetErrorMessage(strError,255,NULL);
if (FromHandle(Dlg.m_hWnd)==NULL)
{
Dlg.Create(IDD_DIALOG_MESSAGE,this);
Dlg.m_strError=TmpStr;
Dlg.CenterWindow(this);
Dlg.ShowWindow(SW_NORMAL);
Dlg.UpdateWindow();
}
}
Sleep(100);//请问我显示上面的对话框后就不能刷新视了,为什么,该如何写?********************
}while(bSuccess==FALSE);
if(FromHandle(Dlg.m_hWnd)!=NULL)
{
//请问:是否有必要消除创建的对话框,该如何清除?******************************
}
BilFile.SeekToEnd();
BilFile.WriteString(szTmp);
BilFile.Close();
KillTimer();
return;
}
该如何写这段代码*************************************?
CXXXView::OnTimer(...)
{
CStdioFile BilFile;
CString strFile=_T("C:\\abc.txt");
KillTimer();
BOOL bSuccess=FALSE;
CErrorDlg Dlg;
do
{
if(FileExist(strFile))
{
bSuccess=BilFile.Open(strFile,CFile::modeWrite,&e);
}
else
{
bSuccess=BilFile.Open(strFile,CFile::modeCreate|CFile::modeWrite,&e);
}
if (bSuccess==FALSE)
{
char strError[256];
memset(strError,0,256);
e.GetErrorMessage(strError,255,NULL);
if (FromHandle(Dlg.m_hWnd)==NULL)
{
Dlg.Create(IDD_DIALOG_MESSAGE,this);
Dlg.m_strError=TmpStr;
Dlg.CenterWindow(this);
Dlg.ShowWindow(SW_NORMAL);
Dlg.UpdateWindow();
}
}
Sleep(100);//请问我显示上面的对话框后就不能刷新视了,为什么,该如何写?********************
}while(bSuccess==FALSE);
if(FromHandle(Dlg.m_hWnd)!=NULL)
{
//请问:是否有必要消除创建的对话框,该如何清除?******************************
}
BilFile.SeekToEnd();
BilFile.WriteString(szTmp);
BilFile.Close();
KillTimer();
return;
}
该如何写这段代码*************************************?
解决方案 »
- 设置鼠标的问题
- abnormal program termintion 错误, m_pRecordset->MoveNext() 不能移动了?
- 为何同样的语句结果不一致?,在线等....
- 怎么可以获取局域网中某台计算机消息队列中的消息数量?
- 来不起了,一个类型转换整死我了,求救!
- 高分求广播通信代码
- 请教关于数据库中的表的绑定问题?
- 请问:程序中添加一个托盘后,如何获取该托盘图标的位置,不是通过获取鼠标的位置那种情况
- GetProcAddress返回0是错在哪了呢
- VC++中对图片中多边形顶点坐标的检测方法
- 关于数据存储,自定义文件格式的问题!(有难度,请高人帮忙!)谢谢
- vc 如何写自己的.lib.
如Sleep(100);//
就会发生阻塞了,所以建议你在线程中处理
{
//你的代码在这里写
}