MFC中实现选择本地文件的弹框
- 首先我们要确定,我们要明确我们通过什么来触发,是点击button按钮,还是通过menu。本文是在menu上实现的。
- 首先新建一个menu,进入资源视图找到下图,点击进入设计界面
- 如下图中所圈出来的步骤新建几个menu。
- 选中其中的一个menu(本文选menu3),鼠标右击出现下拉框,选择添加事件处理程序,按图中一样选择一个要调用的Dlg,添加编辑。
- 添加代码
void CXlCANcontrolDlg::OnMenu3()
{
// TODO: 在此添加命令处理程序代码
CString filename;
CString fileext;//文件扩展名
CString filepathname;
//选择文件
CFileDialog fpdlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "(文件类型)(*.dat)|*.dat|(文件类型)(*.sth)|*.sth|所有文件(*.*)|*.*||", NULL);
if (fpdlg.DoModal() == IDOK)
{
filename = fpdlg.GetFileName();
fileext = fpdlg.GetFileExt();//文件扩展名
filepathname = fpdlg.GetPathName();
//UpdateData(FALSE);
}
//打开文件
CFile fp;
if (filepathname == _T(""))
{
//AfxMessageBox("请选择文件!");
return;
}
if (!(fp.Open((LPCTSTR)filepathname, CFile::modeRead)))
{
AfxMessageBox("文件打开失败!");
return;
}
//读取文件
fp.SeekToEnd();
unsigned long len = fp.GetLength();
char* buff;
buff = new char[len + 1];
fp.SeekToBegin();
if (fp.Read(buff, len) < 1)
{
fp.Close();
}
fp.Close();
}
- 运行你的程序,点击menu3,便会跳出弹框,如下所示: