CFileDialog 改变程序当前路径

      以前做项目的时候,也使用过CFileDialog类,但只是一些简单的利用。也没有发现他有什么问题;在这次项目中,我们本打算在程序运行路径创建一个数据库,可是每次都创建到选择的文件的路径,于是感觉到很郁闷,仔细想了一下,确定就是这个类出的问题。在百度上查询了一下,才知道是由于自己没有用好参数,所以此产生的问题;

CFileDialog 构造函数:

CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );

一般使用的时候,我们只是改变了第一个参数,当用到过滤的时候,就需要用第五个参数了。

咱我用的时候,我把中间三个参数设置为NULL,感觉没什么用。不过我这次出问题,就是出在疏忽了第四个参数,当时我也看到了第四个参数需要传递一些值,当时感觉能运行,没有什么问题,就不再理他了,所以才发生了这次悲剧,造成了这个小博客的诞生。查看一个第四个参数的列表:

#define OFN_READONLY                 0x00000001
#define OFN_OVERWRITEPROMPT          0x00000002
#define OFN_HIDEREADONLY             0x00000004
#define OFN_NOCHANGEDIR              0x00000008  //这个参数就是说明不改变路径的,而我......
#define OFN_SHOWHELP                 0x00000010
#define OFN_ENABLEHOOK               0x00000020
#define OFN_ENABLETEMPLATE           0x00000040
#define OFN_ENABLETEMPLATEHANDLE     0x00000080
#define OFN_NOVALIDATE               0x00000100
#define OFN_ALLOWMULTISELECT         0x00000200
#define OFN_EXTENSIONDIFFERENT       0x00000400
#define OFN_PATHMUSTEXIST            0x00000800
#define OFN_FILEMUSTEXIST            0x00001000
#define OFN_CREATEPROMPT             0x00002000
#define OFN_SHAREAWARE               0x00004000
#define OFN_NOREADONLYRETURN         0x00008000
#define OFN_NOTESTFILECREATE         0x00010000
#define OFN_NONETWORKBUTTON          0x00020000
#define OFN_NOLONGNAMES              0x00040000     // force no long names for 4.x modules

根据需要设置第四个参数.....


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值