先来看看,我们的实现结果:
我们完成了将桌面上的一个记事本复制到了D盘下我们新建的一个11的记事本里面。
新建一个对话框工程,设计界面如下:
分别为两个编辑框关联值类型的而不是控件变量哦,对于两者的区别,请看《控件变量与值变量的区别》,都是CString类型的:
DDX_Text(pDX, IDC_EDIT1, m_oFile);
DDX_Text(pDX, IDC_EDIT2, m_nFile);
为三个按钮建立消息响应:
void CCopyFileDlg::OnButselect()
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"All Files(*.*)|*.*||",AfxGetMainWnd()); //构造文件打开对话框
if (dlg.DoModal() == IDOK) //判断是否按下"打开"按钮
{
m_oFile = dlg.GetPathName(); //获得文件路径
m_FileExt = dlg.GetFileExt();
UpdateData(FALSE);
}
}
void CCopyFileDlg::OnButnewpath()
{
// TODO: Add your control notification handler code here
CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"All Files(*.*)|*.*||",AfxGetMainWnd()); //构造文件另存为对话框
CString strText="."; //声明变量
strText += m_FileExt;
if (dlg.DoModal() == IDOK) //判断是否按下"保存"按钮
{
m_nFile = dlg.GetPathName(); //获得文件保存路径
if (m_nFile.Right(4) != strText) //判断文件扩展名
{
m_nFile += strText; //设置文件扩展名
}
UpdateData(FALSE);
}
}
void CCopyFileDlg::OnButcopy()
{
// TODO: Add your control notification handler code here
UpdateData();
BOOL ret = CopyFile(m_oFile,m_nFile,TRUE);
if (ret)
MessageBox("复制成功","提示",MB_OK);
else
MessageBox("复制失败","提示",MB_OK);
}
具体的代码解释,留到下篇文章,其实就是CopyFile这个函数的应用。