在MFC中可以利用CFileDialog类完成,该类派生自CCommonDialog类,简介派生自CDialog。其构造函数如下:
CFileDialog(BOOL bOpenFileDialog,//设定用于构建“保存为”对话框(FALSE),构造“打开”对话框(TRUE)
LPCTSTR lpszDefExt = NULL,//缺省的文件扩展名,当lpszDefExt被设定时,在用户没有指定文件扩展名时,使用该参数指定的扩展名
LPCTSTR lpszFileName = NULL,//指定在编辑框中的初始化文件名,若为空,则没有初始化文件名。
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
/*
*允许定制对话框的标记组合,通过OPENFILENAME结构体查看
*/
LPCTSTR lpszFilter = NULL,//指定能够应用到文件过滤器的字符对,若应用,只有选择的文件可以出现在列表框中
CWnd * pParentWnd = NULL//指示文件对框框对象的父窗口
)
如下例所示:
CFileDialog OpenDlg(FALSE);
OpenDlg.m_ofn.lpstrTitle = "打开...";// 设定打开对话框的标题
OpenDlg.m_ofn.lpstrFilter = "Text File(*.txt)\0*.txt\0All File(*.*)\0*.*\0\0";
/*
*设置文件过滤器,指定过滤两种文件类型*.txt和*.*,必须以\0作为分隔符
*/
OpenDlg.m_ofn.lpstrDefExt = "txt";//设置默认选择的文件后缀名为.txt
if(IDOK == OpenDlg.DoModal())
{
CFile file(OpenDlg.GetFileName(),CFile::modeCreate|CFile::modeWrite);
file.Write("http://www.cte.com.cn",strlen("http://www.cte.com.cn"));
file.Close();
}
在VS2008中略有不同,不过聪明的您应该知道如何实现。