CString filePath;
char szFilter[] = {"All Files(*.*)|*.*||"};
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
if(dlg.DoModal() == IDOK)
{
filePath = dlg.GetPathName();
lpszFileName = (LPCTSTR)filePath; //lpszFileName是一个全局变量
}
else
{
}
如果要将打开的文件的内容显示到编辑框中,可以把读出的内容放到一个缓冲区中,然后再放到CString类型编辑框变量m_szDisplay中,就可以在编辑框中显示,别忘了Update(FALSE);当然也可以使用SendMessage函数。
void CProcessDlg::OnSave()
{
// TODO: Add your control notification handler code here
char szFilter[] = {"TXT Files (*.txt)|*.txt|Excel Files (*.xls)|*.xls||"};
CString fileName;
fileName = "*.*";
CFileDialog dlg(FALSE,"txt",fileName,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
//dlg.m_ofn.lpstrDefExt = "txt";
if(dlg.DoModal() == IDOK)
{
//fileName = dlg.GetFileName();
CFile file;
file.Open(fileName,CFile::modeCreate | CFile::modeReadWrite);
//file.Write(fileName.GetBuffer(fileName.GetLength()),fileName.GetLength());
//将编辑框中的内容写到文件中
file.Write(m_szDisplay.GetBuffer(m_szDisplay.GetLength()),m_szDisplay.GetLength());
file.Close();
}
else
{
}
}
因为这段代码只是一个工具的一部分代码,所以有些变量在这段代码中没有定义,也有一部分代码感觉是多余的。过几天我会将整个工具的代码都上传。