MFC之CFileDialog Class的简单应用

一、函数原型

CFileDialog::CFileDialog(BOOL bOpenFileDialog,    //TRUE则打开文件,为FALSE保存文件
		         LPCTSTR lpszDefExt = NULL,     //指定默认的文件扩展名。
		         LPCTSTR lpszFileName = NULL,//指定默认的文件名
		         DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //指明一些特定风格
		         LPCTSTR lpszFilter = NULL,   //指明可供选择的文件类型和相应的扩展名
		         CWnd* pParentWnd = NULL,
		         DWORD dwSize = 0,
		         BOOL bVistaStyle = TRUE);
lpszFilter 的格式:如:_T("JPEG/BMP/GIF(*.jpg;*.jpeg;*.bmp;*.gif)|*.jpg;*.jpeg;*.bmp;*.gif|")
     文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

二、成员介绍

1、打开窗口

INT_PTR       DoModal()              //打开窗口,返回结果为TRUE表示打开成功

2、获得文件信息

CString       GetPathName()      //获取某路径下的文件名 如:D:\C\test\name.jpg
CString       GetFolderPath()               //获得路径   如:D:\C\test
CString       GetFileTitle();                   //获得文件名 如:name
CString       GetFileExt();                     //获得格式 如:jpg

3、遍历整个文件夹:

POSITION   GetStartPosition() const;    //选择第一个迭代器
CString    GetNextPathName() const;  //获得该路径的文件名

4、编辑默认的窗口

(1)、Menu
添加:返回S_OK如果成功,或者一个错误值
HRESULT AddMenu(DWORD dwIDCtl,                  //ID
                const CString& strLabel);   //名称
(2)、PushButton
添加一个PushButton:返回S_OK如果成功,或者一个错误值
HRESULT AddPushButton(DWORD dwIDCtl,  //ID
                      const CString& strLabel); //名称
(3)、ComboBox
添加一个ComboBox:返回S_OK如果成功,或者一个错误值
HRESULT AddComboBox(DWORD dwIDCtl);//ID
(4)、RadioButtonList
添加一个RadioButtonList:返回S_OK如果成功,或者一个错误值
HRESULT AddRadioButtonList(DWORD dwIDCtl);//ID
(5)、CheckButton
 添加一个CheckButton:返回S_OK如果成功,或者一个错误值
HRESULT AddCheckButton(DWORD dwIDCtl,     //ID
                       const CString& strLabel,  //名称
                       BOOL bChecked);     //当前状态
获得CheckButton的状态:返回S_OK如果成功,或者一个错误值
HRESULT GetCheckButtonState(DWORD dwIDCtl, //ID
                            BOOL& bChecked);  //状态 TRUE     FALSE
设置CheckButton的状态:返回S_OK如果成功,或者一个错误值
HRESULT SetCheckButtonState(DWORD dwIDCtl, //ID
                            BOOL bChecked);//需要设置的状态   TRUE  FALSE
(6)、EditBox 
添加一个EditBox:返回S_OK如果成功,或者一个错误值
HRESULT AddEditBox(DWORD dwIDCtl, //ID
                   const CString& strText);//名称
获得EditBox中的文本:返回S_OK如果成功,或者一个错误值
HRESULT GetEditBoxText(DWORD dwIDCtl,  //ID
                       CString& strText);//EditBox中的内容
设置EditBox中的文本:返回S_OK如果成功,或者一个错误值
HRESULT SetEditBoxText(DWORD dwIDCtl,      //ID
                       const CString& strText);//要设置的内容
(7)、Text
添加一个Text:返回S_OK如果成功,或者一个错误值
HRESULT AddText(DWORD dwIDCtl, //ID
                const CString& strText);//名称

三、具体实例

//PStaic:方法:GetDlgItem(IDC)   //截取控件的ID
void XXXX::Save(CWnd* pStaic)
{	
	CString Path, Name, Form;
        CFileDialog  dlg(FALSE, NULL, NULL, OFN_NOCHANGEDIR, _T("*.jpg; *.jpeg; *.bmp; *.gif | *.jpg;*.jpeg ;*.bmp ;*.gif|"));
	int   iReturn = dlg.DoModal();
	if (iReturn == IDOK)
	{
		Path = dlg.GetFolderPath()+"\\";             //获得文件路径
		Name = dlg.GetFileTitle();                   //获得文件名
		Form = "."+dlg.GetFileExt();                     //获得格式
		if (Form == "." || (!(Form == ".jpg" || Form == ".jpeg" || Form == ".bmp" || Form == ".gif"))){     //判断文件格式是否正确
			AfxMessageBox(_T("请输入正确的文件格式!"), MB_ICONQUESTION | MB_OK);
			SaveImage(pStaic);    //回调
		}

	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值