1 简要
MFC提供公用对话框类包括以下几种:
CColorDialog类: 用于选择颜色对话框
CFileDialog类: ........实现打开和保存文件对话框
CFindReplaceDialog类: ........查找和替换文本
CFontDialog类: .........选择字体对话框
COleDialog类: .........该类及其派生类用于生成OLE应用程序对话框
CpageSetupDialog类: ..........OLE Page Setup(指定页面设置和打印边界)
CPrintDialog类: ..........打印和打印设置对话框
2 文件打开对话框
简要
首先在堆栈上构建一个CFileDialog类的对象,然后调用CFileDialog::DoModal()函数创建并显示对话框
CFileDialog构造函数
CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
参数意义如下:
bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
lpszDefExt 指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如: "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Da
pParentWnd 为父窗口指针。
<例子>
创建新工程Dialog,在菜单资源添加为“打开文件对话框”的菜单,ID为ID_FILEIO_DLG_OPEN,再添加菜单命令的的“打开文件对话框”的COMMAND命令消息处理函数,为OnFileioDlgOpen,代码如下:
void CDialogView::OnFileioDlgOpen()
{
// TODO: 在此添加命令处理程序代码
CFileDialog fileDlg(TRUE);//定义CFileDialog类对象,设第一个参数为TRUE,表示创建打开文件对话框
fileDlg.m_ofn.lpstrFilter=LPCTSTR(_T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0"));
//定义打开对话框的标题“打开文件”
fileDlg.m_ofn.lpstrTitle=LPCTSTR(_T("打开文件"));
char szchar[20];
memset(szchar,0,20);
if(fileDlg.DoModal() == IDOK)
{
CFile file(fileDlg.m_ofn.lpstrFile,CFile::modeRead);
file.Read(szchar,20);
file.Close();
MessageBox(LPCTSTR(szchar));
}
}