对于CFileDialog的研究

本文详细介绍了CFileDialog类的构造函数及成员函数用法,包括如何设置对话框风格、默认文件扩展名等参数,以及如何获取用户选择的文件路径。此外还提供了示例代码,帮助读者更好地理解和使用CFileDialog。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 :指明可供选择的文件类型和相应的扩展名。例如:"Excel files(*.xls;*.xlc)|*.xls;*.xlc|All files(*.*)|*.*||"
pParentWnd:父窗口指针。

 

成员函数:   
CString CFileDialog::GetPathName( ) 得到完整的文件名(完整路径)。 
CString CFileDialog::GetFileName( ) 得到完整的文件名(带文件扩展名)。 
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名(文件扩张名)。  
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名(只是文件标题)。   
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。

可以使用Windows CommDlgExtendError函数判断在初始化对话框时是否是发生了错误,并获取关于错误的更多信息。

 

dwFlags 风格介绍:
OFN_ALLOWMULTISELECT 多个文件选择。
OFN_CREATEPROMPT  如果文件不存在就创建文件(创建快捷键)。
OFN_PATHMUSTEXIST 文件路径必须存在。
OFN_FileMUSTEXIST 文件必须存在。
OFN_READONLY 以只读方式打开()。
OFN_SHOWHELP 显示帮助按钮。

 

m_ofn 成员介绍:
lpstrTitle 设置对话框标题。
lpstrInitialDir 对话框初始路径。
lpstrFile  在多个文件选择的情况下,设置一个临时缓冲区存储文件的路径。
nMaxFile   指定lpstrFile缓冲的大小,以TCHARs为单位。对于ANSI版本,是字节的个数;对于 Unicode版本,是字符的个数。

 

for example:
void SelectFile()
{
 CFileDialog dlg(true,"txt",NULL,OFN_ALLOWMULTISELECT,"Excel files(*.xls;*.xlc)|*.xls;*.xlc|All files(*.*)|*.*||");
 char ch[4096] = "/0";
 dlg.m_ofn.lpstrFile = ch;
 dlg.m_ofn.nMaxFile = 4096;
 if(IDOK == dlg.DoModal())
 {
  POSITION pos = dlg.GetStartPosition();
  while(pos)
  {
   CString str = dlg.GetNextPathName(pos);
   MessageBox(NULL,str,"操作提示",MB_OK);
  }
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值