CFileDialog用法
2013-01-31 14:19
190 查看
CFileDialog的用来构建一个标准的Windows文件对话框,原型如下
CFileDialog构造函数中的参数说明
"文件"对话框常用的函数
例
读取多个文件的方法
//定制文件对话框
CFileDialog dlg(TRUE,
"DEM Files (*DEM)",
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,
_T("Layer Files (*.DEM;*.TIFF;*.BMP;*.JPG)|*.DEM;*.TIFF;*.BMP;*.JPG;)||"),
NULL);
dlg.m_ofn.lpstrTitle="请加载相关图层";
//最多可以打开100个文件
dlg.m_ofn.nMaxFile = 100 * MAX_PATH;
dlg.m_ofn.lpstrFile = new TCHAR[dlg.m_ofn.nMaxFile];
ZeroMemory(dlg.m_ofn.lpstrFile, sizeof(TCHAR) * dlg.m_ofn.nMaxFile);
//显示文件对话框,获得文件名集合
int retval = dlg.DoModal();
if(retval==IDCANCEL)
return false;
POSITION pos_file;
pos_file = dlg.GetStartPosition();
CArray<CString, CString> ary_filename;
while(pos_file != NULL)
ary_filename.Add(dlg.GetNextPathName(pos_file));
//根据扩展名读取相关文件
for(int i=0; i<ary_filename.GetSize(); i++)
{
CString str_ext;
str_ext = ary_filename.GetAt(i).Right(3);
if((str_ext == "DEM")||(str_ext == "dem"))
{
}
else if((str_ext == "TIFF")||(str_ext == "tiff"))
{
}
else if((str_ext == "BMP")||(str_ext == "bmp"))
{
}
else if((str_ext == "JPG")||(str_ext == "jpg"))
{
}
else if((str_ext == "SHP")||(str_ext == "shp"))
{
}
}
return true;
CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL, DWORD dwSize = 0, BOOL bVistaStyle = TRUE);
参数 | 描述 |
bOpenFileDialog | 如果值为TRUE,构造打开对话框;如果值为FALSE,构造另存为对话框 |
lpszDefExt | 用于确定文件默认扩展名,如果为NULL,没有扩展名被插入到文件名中 |
lpszFileName | 确定编辑框中初始化时的文件名称,如果为NULL,则编辑框中没有文件名称 |
dwFlags | 用于自定义"文件"对话框的样式 |
lpszFilter | 用于指定对话框过滤的文件类型 |
pParentWnd | 标识"文件对话框的父窗指针" |
dwSize | 该值取决于操作系统版本。 MFC使用这个参数来确定适当的类来创建对话框 (例如,新的Windows 2000的对话框而不是NT4对话框)。 默认大小为0意味着MFC代码将确定正确的对话框的大小 使用基于操作系统版本上运行程序。 |
bVistaStyle | 注意这个参数在Visual Studio 2008之后可用后, 新型的对话框只在Windows Vista或之后可运行使用。 设置为TRUE使用新版本对话框风格,False使用旧的对话框风格. |
函数 | 描述 |
---|---|
DoModal | 用于显示"文件"对话框,供用户选择文件 |
GetPathName | 用于返回用户选择文件的完整路径名称,包括文件的路径,文件名和文件扩展名 |
GetFileName | 用于返回用户选择的文件名称,包括文件名和扩展名,但不包含路径 |
GetFileExt | 用于返回"文件对话框"中输入的文件扩展名 |
GetFileTitle | 用于返回"文件"对话框中输入的文件名称,但不包含路径和扩展名 |
OnFileNameOK | 用于检查"文件"名称是否正确 |
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR, L"所有图像文件(*.bmp; *.jpg)|*.bmp; *.jpg|所有文件(*.*)|*.*||"); if (dlg.DoModal()==IDOK) { CString a = dlg.GetFileTitle(); MessageBox(a); }
读取多个文件的方法
//定制文件对话框
CFileDialog dlg(TRUE,
"DEM Files (*DEM)",
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT |OFN_ALLOWMULTISELECT|OFN_ENABLESIZING,
_T("Layer Files (*.DEM;*.TIFF;*.BMP;*.JPG)|*.DEM;*.TIFF;*.BMP;*.JPG;)||"),
NULL);
dlg.m_ofn.lpstrTitle="请加载相关图层";
//最多可以打开100个文件
dlg.m_ofn.nMaxFile = 100 * MAX_PATH;
dlg.m_ofn.lpstrFile = new TCHAR[dlg.m_ofn.nMaxFile];
ZeroMemory(dlg.m_ofn.lpstrFile, sizeof(TCHAR) * dlg.m_ofn.nMaxFile);
//显示文件对话框,获得文件名集合
int retval = dlg.DoModal();
if(retval==IDCANCEL)
return false;
POSITION pos_file;
pos_file = dlg.GetStartPosition();
CArray<CString, CString> ary_filename;
while(pos_file != NULL)
ary_filename.Add(dlg.GetNextPathName(pos_file));
//根据扩展名读取相关文件
for(int i=0; i<ary_filename.GetSize(); i++)
{
CString str_ext;
str_ext = ary_filename.GetAt(i).Right(3);
if((str_ext == "DEM")||(str_ext == "dem"))
{
}
else if((str_ext == "TIFF")||(str_ext == "tiff"))
{
}
else if((str_ext == "BMP")||(str_ext == "bmp"))
{
}
else if((str_ext == "JPG")||(str_ext == "jpg"))
{
}
else if((str_ext == "SHP")||(str_ext == "shp"))
{
}
}
return true;
相关文章推荐
- CFileDialog的用法简介
- CFileDialog用法详解
- CFileDialog的用法和简介,读取多文件
- CFiledialog 用法
- CFileDialog常见用法
- CFileDialog的用法和简介,读取多文件
- CFileDialog用法
- CFileDialog的用法和简介,读取多文件
- CFileDialog的用法简介!!
- CFileDialog的用法
- CFileDialog的用法简介
- CFileDialog 和 CFile &&CreateFile 用法及sample --
- mfc函数---CFileDialog的用法
- MFC中CFileDialog的用法
- CFileDialog 用法(翻译的MSDN)
- CFileDialog的用法简介 .
- MFC中CFileDialog的用法 如何设置文件类型
- CFileDialog的用法简介
- MFC中CFileDialog用法
- CFileDialog的用法简介!!