您的位置:首页 > 其它

【框架-MFC】关于CFileDialog保存文件获取扩展名(后缀名)

2016-11-07 15:49 387 查看
 

方法1、通过CFileDialog.m_ofn.nFilterIndex过滤器编号来区分当前选择的扩展名

CFileDialog fileDialog(FALSE, NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,\
_T("DataFile(*.tif)|*.tif|Data File(*.sct)|*.sct||"),this);
if(fileDialog.DoModal()==IDOK)
{
if (fileDialog.m_ofn.nFilterIndex == 1)
{
//tif
}
else if (fileDialog.m_ofn.nFilterIndex == 2)
{
//sct
}
}


方法2、通过GetSaveFileName函数,追加扩展名,第二个参数不能为NULL,可以是L""

CFileDialog fileDialog(FALSE,L"",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,\
_T("DataFile(*.tif)|*.tif|Data File(*.sct)|*.sct||"),this);
if(fileDialog.DoModal()==IDOK)
{
GetSaveFileName(&fileDialog.m_ofn);
//获取扩展名,没有‘.’
fileDialog.GetFileExt();
}

 

方法3、重写CFileDialog 中的OnInitDialog和OnTypeChange函数

BOOL CFileDialogEx::OnInitDialog()
{
CFileDialog::OnInitDialog();

SetDefExt("tif");
returnTRUE; // return TRUE unless you set thefocus to a control
}

void CFileDialogEx::OnTypeChange()
{
intn=m_ofn.nFilterIndex;
if(n==1)
{
SetDefExt(("tif"));
}
elseif (n==2)
{
SetDefExt(("sct"));
}
CFileDialog::OnTypeChange();
}

CFileDialogEx fileDialog(FALSE,L"",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,\
_T("DataFile(*.tif)|*.tif|Data File(*.sct)|*.sct||"),this);
if(fileDialog.DoModal()==IDOK)
{
//获取扩展名,没有‘.’
fileDialog.GetFileExt();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: