MFC调用CFileDialog之后目录居然会改变,调试了好久终于发现是这个问题
MFC调用CFileDialog之后目录居然会改变,调试了好久终于发现是这个问题,上网搜了下,发现也有人和我出现相同的问题。他的博客如下:
http://www.programlife.net/current-directory-changed-after-using-cfiledialog.html
MFC调用CFileDialog之后目录改变
2011年5月28日 代码疯子 发表评论 阅读评论
今天在写MFC程序时发现调用CFileDialog之后,再来用相对路径打开程序目录下的文件就不对了,打不开了。后来一调试,发现是程序的路径变成了CFileDialog所选择的路径。
解决方法:在调用CFileDialog的DoModal之前使用GetCurrentDirectory获取程序的目录并且保存下来,然后在DoModal之后嗲用SetCurrentDirectory恢复就可以了。这不会影响到CFileDialog的目录,因为它使用的是绝对路径。
--------------------------------------------------------------------------------
感谢gewala提醒:
在CFileDialog的dwFlags 设置标志OFN_NOCHANGEDIR就可以了,不会改变目录的。(这方法更加方便)
Copyed From 程序人生
转载于:https://www.cnblogs.com/seacode/archive/2011/12/30/2307821.html
MFC调用CFileDialog之后目录居然会改变,调试了好久终于发现是这个问题相关推荐
- cfiledialog对话框大小_利用MFC的CFileDialog生成Windows2000文件对话框 (转)
利用MFC的CFileDialog生成Windows2000文件对话框 (转)[@more@] 利用MFC的CFileDialog生成windows2000文件对话框 周鸣扬 自Windows2000 ...
- 利用MFC调用libvlc.dll作一个简单的播放器
简单介绍MFC调用libvlc.dll作一个简单的播放器,抛砖引玉,各位VC++达人继续深入研究,Jeremiah对VC++确实不太感兴趣,所以就不做太深入的研究了. 2009.10.29修改:加入c ...
- C#调用exe工作目录
C#程序中调用exe发现一个现象. 分别是A.exe一个路径,B.exe和C.exe在另一个相同路径. A.exe调用B.exe,然后B.exe调用C.exe就出现了C.exe调用不正常的现象. 原来 ...
- Python编程语言学习:在根目录的py文件内调用某叶目录文件内的包/库或者函数(常用在GUI编程)之详细攻略
Python编程语言学习:在根目录的py文件内调用某叶目录文件内的包/库或者函数(常用在GUI编程)之详细攻略 目录
- 可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)
MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理 #include <qmfcapp.h> #include <qwinwidget.h& ...
- MFC调用Qt生成的dll
MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理 [cpp] view plaincopyprint? #include <qmfcapp.h> ...
- MFC调用dos窗口使用printf,cout打印输出
当我们使用AllocConsole函数调用一个dos窗口时,mfc为我们提供了几个打印函数比如_printf等用来向此终端打印输出信息,但是你会发现标准c语言的printf失效了,是因为mfc在帮我们 ...
- 在form2中调用form1中的方法并改变form1中控件值的另一种方法
在窗体编程中,经常碰到到要在form2中调用form1中的方法并改变form1中控件值,但是又不能用new form1这种方法,因为这是生成一个实例. 网上有些说法是用委托和事件,笔者尝试没有成功,可 ...
- MFC 教程【10_内存分配方式和调试机制 】
内存分配方式和调试机制 M内存分配 内存分配函数 MFCWin32或者C语言的内存分配API,有四种内存分配API可供使用. Win32的堆分配函数 每一个进程都可以使用堆分配函数创建一个私有的堆── ...
最新文章
- axios的this指向_vue使用axios中 this 指向问题
- python中if else语句用法_讲解Python中if语句的嵌套用法
- 裁员屠刀下一个目标会是谁?
- Confusion matrix
- [以太坊源代码分析] VI. 基于p2p的底层通信(上篇)
- 对新手的忠告:拒绝创意,回归基础
- angularjs 读取mysql_如何使用AngularJS PHP从MySQL获取数据
- Angular父子Component之间的事件通知机制
- centos8上安装nginx
- js中将时间字符串转换为时间戳
- 计算机网络具有双重性特点,计算机网络(本)_201806_模拟卷2_答案
- google支付接入PHP语言,PHP语言开发Paypal支付demo的具体实现
- 斐讯k2修改dns服务器,斐讯K2固件修改的一些信息
- sip信令超时时间调整
- Installed Build Tools revision 33.0.0 is corrupted. Remove and install again using the SDK Manager
- 彻底弄懂GMT、UTC、时区和夏令时
- Centos 6.10 安装docker
- 计算机组装配置(2019年 CPU及显卡天梯图)
- 电子邮件链接格式html主题,HTML的电子邮件链接标签mailto用法详解
- framework层的event_log分析
热门文章
- todoist 无法登陆_通过构建Todoist克隆将您的React技能提升到一个新的水平
- 项目部署时网关怎么回事_使用Kubernetes部署聊天网关(或技术按预期运行时)...
- react 统一字段验证_如何使用React的受控输入进行即时表单字段验证
- php 自动返回,PHP实现自动识别Restful API的返回内容类型
- 2021年还适合参加软件测试培训吗
- 从一道面试题分析Thread.interrupt方法
- EOS Chain/Wallet RPC API的PHP开发包
- 开源 免费 java CMS - FreeCMS1.9 全文检索
- LinearLayout增加divider分割线
- 1.0 封装后的布局成本