以CDialog派生出来的CRenameDlg类,当执行DoModal()后,对话框显示了出来,但,整个界面马上就无法操作了。大约过20来秒之后,才能在在对话框里输入值,才能操作。
CString GnewFolder="";/////////////////////////////////////////////////////////////////////////////
// CRenameDlg dialogCRenameDlg::CRenameDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRenameDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRenameDlg)
m_strNewName = _T("");
//}}AFX_DATA_INIT
}
CRenameDlg::CRenameDlg(CString str,CWnd* pParent/* = NULL*/)
:m_strOldName(str),CDialog(CRenameDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRenameDlg)
m_strNewName = _T("");
//}}AFX_DATA_INIT
}
void CRenameDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRenameDlg)
DDX_Text(pDX, IDC_NEWNAME, m_strNewName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRenameDlg, CDialog)
//{{AFX_MSG_MAP(CRenameDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CRenameDlg message handlersvoid CRenameDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
if (m_strNewName.IsEmpty())
{
return;
} if (m_strOldName.Find(m_strNewName)!=-1)
{
AfxMessageBox("文件夹已存在");
return;
}
GnewFolder=m_strNewName;
CDialog::OnOK();
}//调用方式:
CRenameDlg dlg(str);
if (dlg.DoModal()!=IDOK)
{
return ;
}
CString GnewFolder="";/////////////////////////////////////////////////////////////////////////////
// CRenameDlg dialogCRenameDlg::CRenameDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRenameDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRenameDlg)
m_strNewName = _T("");
//}}AFX_DATA_INIT
}
CRenameDlg::CRenameDlg(CString str,CWnd* pParent/* = NULL*/)
:m_strOldName(str),CDialog(CRenameDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRenameDlg)
m_strNewName = _T("");
//}}AFX_DATA_INIT
}
void CRenameDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRenameDlg)
DDX_Text(pDX, IDC_NEWNAME, m_strNewName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRenameDlg, CDialog)
//{{AFX_MSG_MAP(CRenameDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CRenameDlg message handlersvoid CRenameDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
if (m_strNewName.IsEmpty())
{
return;
} if (m_strOldName.Find(m_strNewName)!=-1)
{
AfxMessageBox("文件夹已存在");
return;
}
GnewFolder=m_strNewName;
CDialog::OnOK();
}//调用方式:
CRenameDlg dlg(str);
if (dlg.DoModal()!=IDOK)
{
return ;
}
解决方案 »
- 请问下到底什么是“串口”,想用VC实现搜索本机有哪些串口该怎么实现?
- 刚才分给少了,再来一贴,三分绝杀,庆功!
- 新手提问:为什么加了对话框后,MessageBox显示不出来?
- 大量图形处理的速度问题,急救,会不会给点意见和方向!
- 欢迎大家访问我的手机wap站点里面有大量游戏、图片、铃声、等的下载,支持多款手机,都是免费的哦。
- 程序里如何实现与需要登录的HTTP PAGE通讯????有关session的处理!
- 我想把一个树形的控件或对象放到窗体的左边!
- DWGdirect(Teigha) 3.3性能比较低,高分求解!!!
- 请问BITMAP和HBITMAP有什么区别?
- winmain()在mfc框架中到底是怎样的一个来龙去脉
- CHtmlView显示图标问题
- 请教,如何写软件设计书
有可能是哪个地方占用了UI线程导致消息无法及时响应,当相应的后台工作完成(20s)后又恢复正常的交互了
是不是判断文件是否存在用的函数错了,导致程序在里面做了很多操作。
给个参考的代码:
bool CFileExitDlg :: FindFile(CString strPath,CString strFileName)
{
CString strtemp;
bool flag=false;
if(strPath.Right(1)!="\\")
strtemp.Format("%s\\*.*",strPath);
else
strtemp.Format("%s*.*",strPath);
CFileFind findfile;
BOOL bfind=findfile.FindFile(strtemp);
while(bfind)
{
bfind=findfile.FindNextFile();
if(strFileName==findfile.GetFileName())
{
flag=true;
}
if(findfile.IsDirectory()&&!findfile.IsDots())
{
FindFile(findfile.GetFilePath(),strFileName);
}
}
return flag;
}