前几天从网上下了个图像分析的mfc小程序,是VC6的 用VC6在本地编译生成都没问题.执行起来弹出一个未处理的错误,程序崩溃退出. 想起来原来遇到过打开文件对话框方面的问题,当时项目时间紧张未能深究. 这次要好好看下这个问题. 详细做法就是深入仔细的跟踪.跟踪.跟踪. .. 应用代码,跟进 MFC的代码,跟进 Alt+8调出反汇编,跟进. . . 重复多次重复追踪.缩小目标.确定问题是:在CFileDialog 的析构函数中,调用了CString 的析构函数, 恰恰是析构CSring 出错了.…
引言:没想到2022年还有很多工业软件公司依然使用MFC,微软也一直在更新MFC的库,这次使用MFC封装的CFileDialog类,写一个获得选定文件路径,名称,扩展名的程序. 个人技术博客(文章整理+源码): https://zobolblog.github.io/LearnWinAPI/ 最终效果: 1.CFileDialog的使用 CFileDialog是MFC对windows api的FileDialog的简单封装,增加了一些接口,他的构造函数只有一个: explicit CFileDi…
作者:朱金灿 来源:http://blog.csdn.net/clever101 在xp系统上进行文件多选,实际上其文件字符串数组的缓冲区是有限,并不能支持选择任意多个文件,为此以前我还写过一篇文章:使用CFileDialog的钩子函数解决对话框的多选问题.实际上这种做法在vista系统及win7系统上并不支持.那么如何在vista系统及win7系统支持打开文件对话框任意多选文件呢?我想到windows是一个基于com的系统,没准使用com接口能做到.事实上是这样的,需要使用一个叫IFileOp…
VS2012下自定义打开文件对话框,MFC的CFileDialog封装了太多,太复杂,绕得头晕,自己封装一个得了 #pragma once #include <objbase.h> #include <commdlg.h> #include "ImagePreviewStatic.h" // XFileDialog class XFileDialog : public CWnd { DECLARE_DYNAMIC(XFileDialog) public: XFi…
package com.soft.test; //AWT: FileDialog类 + FilenameFilter类 可以实现本功能 //Swing: JFileChooser类 + FileFilter类 可以实现本功能 // //该类用来测试打开文件和保存文件的对话框 import java.awt.*; //为了使用布局管理器 import java.awt.event.*;//用来处理事件 import javax.swing.*; //最新的GUI组件 import java.io.…
Qstring fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ",  tr("Allfile(*.*);;mp3file(*.mp3)"));   说明:这样就会产生一个对话框,和系统的资源管理器差点儿相同的.返回的是你选择文件的 绝对路径. 參数1:父窗体 參数2:对话框的标题 參数3:默认的打开的位置,如"我的文档"等 參数4:文件的过滤器…
Qt提供了QDesktopServices类, 可以利用openUrl函数调用默认程序打开文件: 源码参考: #ifdef Q_OS_WIN32 m_szHelpDoc = QString("file:///") + m_szHelpDoc; bool is_open = QDesktopServices::openUrl(QUrl(m_szHelpDoc, QUrl::TolerantMode)); if(!is_open) { LogWriter::getLogCenter()-&…
一.打开文件对话框(OpenFileDialog) 1. OpenFileDialog控件的基本属性 InitialDirectory:对话框的初始目录 Filter: 获取或设置当前文件名筛选器字符串,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*" FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 RestoreDirectory 控制对话框在关闭之前是否恢复当前目录 FileName:第一个在对话框中显示的文件或最后一个选取…
使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框 获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog.LOAD 给MenuItem对象设置点击事件,点击事件中,调用FileDialog对象的setVisible(true)方法 调用FileDialog对象的getDirectory()方法,得到String的目录 调用FileDialog对象的getFile()方法,得到String的文件名称 选…
项目中需要打开文件对话框,就查了一下,不得不说Qt的帮助文档做的真好,非常详细.要实现这个功能有两种方式,使用QFileDialog的静态方法,实例化QFileDialog对象. 基本算是照抄帮助文档了.下面是自己的代码. // 单击文件按钮 void FirstDialog::on_pushButtonFile_clicked() { QString strFile = QFileDialog::getOpenFileName( this, tr("打开文件"), tr("…