登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

sunwenhua168的博客

海纳百川,有容乃大

 
 
 

日志

 
 

引用 CFileDialog文件选择对话框的使用(转)  

2009-04-20 18:37:42|  分类: VC++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

引用

CFileDialog文件选择对话框的使用(转)

CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:

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|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

  • pParentWnd 为父窗口指针。
      
        创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:
  • CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:\test\test1.txt
  • CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
  • CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
  • CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
  • POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
  • CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。

 

       示例:
 CString strFilter("BMP file(*.bmp)|*.bmp|All file(*.*)|*.*|| ");//设置文件过滤器
 CFileDialog fileDlg(TRUE, 0, 0, 4|2, strFilter, 0, 0);
 if(fileDlg.DoModal() == IDOK)
 {
  CString strFileExt = fileDlg.GetFileExt(); //获取文件扩展名
  if(strFileExt.Compare(_T("bmp")) && strFileExt.Compare(_T("BMP")))
   return;
 }
 char* strFilePath = CStringToCharP(fileDlg.GetPathName()); //获取文件所在路径

 

CColorDialog颜色选择对话框的使用:首先通过CColorDialog::CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL )构造一个对象,其中clrInit为初始颜色。通过调用DoModal()创建对话框,在返回后调用COLORREF CColorDialog::GetColor( )得到用户选择的颜色值。

CFontDialog字体选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:

CFontDialog::CFontDialog(
                                 LPLOGFONT lplfInitial = NULL,
                                 DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, 
                                 CDC* pdcPrinter = NULL,
                                 CWnd* pParentWnd = NULL );
       构造一个对象,其中参数lplfInitial指向一个LOGFONG结构.如果该参数设置为NULL表示不设置初始字体。pdcPrinter指向一个代表打印机设备环境的DC对象,若设置该参数则选择的字体就为打印机所用。pParentWnd用于指定父窗口。通过调用DoModal()创建对话框,在返回后通过调用以下函数来得到用户选择:

  • void CFontDialog::GetCurrentFont( LPLOGFONT lplf );用来获得所选字体的属性。该函数有一个参数,该参数是指向LOGFONT结构的指针,函数将所选字体的各种属性写入这个LOGFONT结构中。
  • CString CFontDialog::GetFaceName( ) 得到所选字体名字。
  • int CFontDialog::GetSize( ) 得到所选字体的尺寸(以10个象素为单位)。
  • COLORREF CFontDialog::GetColor( ) 得到所选字体的颜色。
  • BOOL CFontDialog::IsStrikeOut( )
    BOOL CFontDialog::IsUnderline( )
    BOOL CFontDialog::IsBold( )
    BOOL CFontDialog::IsItalic( )
    得到所选字体的其他属性,是否有删除线,是否有下划线,是否为粗体,是否为斜体。

  评论这张
 
阅读(542)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018