当前位置: 首页 > 编程日记 > 正文

模态对话框的父窗口设置

我的毕业设计基本是搞完了,那么最近几天在做一些测试和修改。其中就有一个问题折腾了我好久,今天才发现,原来是这么回事。

我创建了一个非模态的子对话框,然后在这个子对话框中又创建了一个模态对话框,结果意外的是点击按钮弹出这个模态对话框时,原父对话框被至于前台了,即父对话框的父对话框被置于前台了,而不是父对话框被至于前台。具体看图:

   最下面黑色背景的是我的父窗口,前台的是一个非模态的子对话框,此时,子对话框在前台

这里写图片描述

     然后我准备下载文件,即将弹出一个保存文件的模态对话框

这里写图片描述

    点击下载后弹出的了保存文件模态对话框,但是原父窗口被弹出来置于前台了。

这里写图片描述
我所期待的应该是弹出了保存对话框,但是应该是在哪个FTP 客户端上才对啊!
其实原因很简单,我们习惯创建模态对话框都是这样操作的:

CNewDlg * pmydlg=new CNewDlg();
if(pmydlg->DoModal()==IDOK)
{ //如何如何
}

注意上面定义CNewDlg * pmydlg=new CNewDlg();的同时也是构造了该对象,那么其实并不完整,因为没有指定它的父对话框,默认就变成了原父对话框,所以会出现上面的问题,那么如何解决呢?很简单,修改一下就OK了.

CNewDlg * pmydlg=new CNewDlg(this);

执行后就是下面的效果:
这里写图片描述

OK,至此。接下来引用别人的CFileDialog使用总结。

CFileDialog经常用,但经常忘,现归纳整理下,方便今后查询。

例子:

CFileDialog openDlg( TRUE, “Material File(.material)|.material”, NULL,

   OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Material File(*.material)|*.material||", this);

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 指明一些特定风格。 (默认OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT)

lpszFilter 指明可供选择的文件类型和相应的扩展名。

pParentWnd 为父窗口指针。

其中,扩展名应遵循下面的格式:

“Chart Files (.xlc)|.xlc| Worksheet Files (.xls)|.xls| Data Files (.xlc;.xls)|.xlc ; .xls| All Files (.)|.||”;

文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

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变量。

需要注意的是,用了CFileDialog之后,会把程序的当前路径设置成选中文件的路径
所以,如果程序里有用到IO访问或者数据库访问之类的本地操作时,需要注意你的当前路径
用相对路径的话就不是原来你的程序路径了,切记!

                         ok,拙见,小记!

相关文章:

XSD标准架构-----xsd:element 元素详解

声明一个元素。 <elementabstract Boolean : falseblock (#all | List of (extension | restriction | substitution))default stringfinal (#all | List of (extension | restriction))fixed stringform (qualified | unqualified)id IDmaxOccurs (nonNegativeInte…

VS2010使用Skin++

转载自http://blog.sina.com.cn/s/blog_5d23890b0100icjj.html。 Skin的使用 一.使用皮肤 将SkinPPWTL.lib 、skinppwtl.dll 、SkinPPWTL.h三个文件及相应皮肤&#xff08;**.ssk&#xff09;拷贝至工程文件夹下&#xff1b;一般还要将这些文件放在Debug文件夹下。 1.在(VC…

美翻朋友圈:用Python生成蒙太奇马赛克图片

题图 | 视觉中国来源 | ZackSock&#xff08;ID:ZackSock&#xff09;我们有时候会听到这么一个词--“蒙太奇”&#xff0c;但却不知道这个词是什么意思。蒙太奇原为建筑学术语&#xff0c;意为构成、装配。而后又延伸为一种剪辑理论&#xff1a;当不同镜头拼接在一起时&#x…

在SQL Server 2008中配置文件流(FILESTREAM)

SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM)&#xff0c;它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据&#xff0c;例如文档、图片、音频、视频等等。文件流主要将SQL Server数据库引擎和新技术文件系统(NTFS)集成在一起;它主要以varbinar…

mysql limit offset

Java代码 SELECT keyword FROM keyword_rank WHERE advertiserid59 order by keyword LIMIT 2 OFFSET 1; 比如这个SQL &#xff0c;limit后面跟的是2条数据&#xff0c;offset后面是从第1条开始读取 Java代码 SELECT keyword FROM keyword_rank WHERE advertiserid59 order …

获取磁盘符信息

项目中有个子模块是ftp客户端&#xff0c;需要罗列本地各个磁盘符&#xff0c;比如C盘、D盘、E盘、F盘。然后进行一些相关的上传下载就比较方便&#xff0c;具体样子如下所示&#xff1a; 需要利用一个Combox控件实现。 废话不多说&#xff0c;先上代码&#xff1a; void …

成为计算机视觉工程师的第一个月,我都学会了什么?

作者 | Richmond Alake译者 | 弯月题图 | 自视觉中国出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;我写这篇文章的目的是为了向那些没有接触过机器学习行业的人们介绍一下我作为计算机视觉工程师第一个月以来的体验&#xff0c;希望这些内部信息能够让你…

天然良方对付小病

打嗝、口臭、消化不良……我们的身体时常会受到一些小毛病的困扰。20位来自美国各大医院的权威医生在美国《预防》杂志网站上发表文章&#xff0c;向读者介绍了一些纯天然的便捷方法&#xff0c;来快速应对这些小病。 生姜止吐。先用热水冲泡生姜片&#xff0c;过滤后把姜汤倒在…

Spring中使用Schedule调度

在spring中两种办法使用调度&#xff0c;以下使用是在spring4.0中。 一、基于application配置文件&#xff0c;配置入下&#xff1a; 1 <bean id"jobDetail" class"org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">…

DNS域名解析优化之tinydns/djbdns篇——测试篇

要开始还债了。 今天整理了一下一套bind9的配置&#xff0c;把记录都清理了一番。想了想&#xff0c;顺带安装了个geoipdns来做性能测试。整理记录的时候用bind-to-tinydns转换了一下记录格式。这些过程以后再说。 NS服务器是同一台Dell PowerEdge 2950。先启动的geoipdns&…

使用Combox控件的一个问题

Combox控件是MFC里边一个比较常用的控件&#xff0c;基本可以看成是一个文本框和一个下拉列表组合而成。但是我在用的时候碰到了一个问题&#xff0c;当我用AddString()函数加了4,5个字符串后&#xff0c;运行之后点击下拉箭头并没有下拉框的显示&#xff0c;或者说显示不出来。…

深度学习基础总结,无一句废话(附完整思维导图)

作者 | Python与算法社区责编 | Carol封图 | CSDN 付费下载于自视觉中国线型回归预测气温、预测销售额、预测商品价格等模型&#xff1a;权重&#xff0c;偏差模型训练&#xff1a;feed 数据学习模型参数值&#xff0c;使得误差尽可能小训练集、测试集、验证集、样本、标签、特…

unity, monoDevelop ide 代码提示不起作用的解决方法

monoDevelop ide 代码提示不起作用&#xff0c;可能是因为ide里索引了一些不存在的文件&#xff0c;检查一下solution窗口里是否有文件变红&#xff0c;如下图中springControlEx.cs。将变红的文件remove掉&#xff0c;然后去unity菜单中点File->Save Project。

DeeCamp 2020 赛题大公开!快来看你想选哪个

DeeCamp 2020 开放性竞赛赛题来啦&#xff0c;快来看看有没有你感兴趣的题目&#xff01;加入DeeCamp2020&#xff0c;你将和来自全球的优秀小伙伴组队挑战真实世界的难题&#xff0c;还能冲刺大奖。五大赛道&#xff0c;14个新颖赛题&#xff0c;总有一款适合你&#xff01;De…

Combox控件下拉选择不同值触发的动作响应

项目中需要根据combox控件下拉列表选择不同的值&#xff0c;然后能触发相应的动作。比如我的项目中&#xff0c;通过combox空间的下拉列表选择不同的C盘&#xff0c;D盘&#xff0c;E盘&#xff0c;F盘&#xff0c;然后能在list控件中把各个盘符的文件目录列出来。 那么触发…

不用se11创建表结构,作smartforms

Call form时不用传内表&#xff0c;切记。 1。在Global Definitions->types页面里输&#xff1a; types:begin of wa_test, matnr like mara-marnt, maktx like makt-maktx, end of wa_test. types:it_test type wa_test occurs 1. 2. 在Global Definitions->Global Data…

linux入门(三)常见Linux指令及其用法

一、上回说到说到Linux的shell指令运行的原理&#xff0c;这回我们来看看Linux中shell的权限管理&#xff0c;所谓的“权限”是指某一类人做某一件事的权利。在shell中这一类人被分为了三种&#xff1a;&#xff08;1&#xff09;文件拥有者user&#xff08;2&#xff09;文件拥…

设置Enter键为默认键

进行MFC编程中&#xff0c;很多时候需要设置快捷键&#xff0c;比如我的项目中&#xff0c;播放器的实现&#xff0c;需要快进、快退、播放、暂停等&#xff0c;除了具体的按钮操作外应该还能通过键盘的快捷键来进行操作。 关于如何设置一个菜单的快捷键或是一个按钮的快捷键&…

MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020

来源 | 微软研究院AI头条&#xff08;ID: MSRAsia&#xff09;编者按&#xff1a;目标检测与目标跟踪这两个任务有着密切的联系。针对目标跟踪任务&#xff0c;微软亚洲研究院提出了一种通过目标检测技术来解决的新视角&#xff0c;采用简洁、统一而高效的“目标检测小样本学习…

从哲学角度分析,框架的[无用之用]效果

小树的用途少&#xff0c;人们不理睬它、不砍伐它、才有机会长成有用之巨木&#xff0c;此为「无用」之用﹗老子说过&#xff1a;「人皆知有用之用&#xff0c;而莫知无用之用」&#xff0c;这与框架观念是一致的。 数千年前&#xff0c;老子提出了这「有、无」哲理&#xff0c…

xtrabackup2.4 备份Precona5.6数据库,做增量备份与还原

1、Full backuop&#xff0c;一定要先做: innobackupex --defaults-file/etc/my.cnf --userroot --passwordevlink /home/mysql/backup/2、Incremental backup&#xff0c;可以每隔一小时或者三小时做一次: innobackupex --defaults-file/etc/my.cnf --userroot --passw…

MFC按钮添加提示文字

转载自&#xff1a; http://blog.163.com/guo_linda/blog/static/12377305720101122105030162/ MFC里这个类叫做CToolTipCtrl&#xff0c;具体用法很简单。 1、在类头文件中声明CToolTipCtrl的类对象m_ctrlTT。 2、在初始化函数OnInitDialog()中设置m_ctrlTT。 EnableTool…

Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相

作者 | 唐小引题图 | HackerEarth 报告出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;Go 正变得越来越受开发者欢迎。几年前&#xff0c;滴滴的工程师曾告诉我&#xff0c;在滴滴 Go 已经得到了非常广泛的应用&#xff0c;去年&#xff0c;在腾讯内部使用…

WinCE中命令行工具Viewbin简介(查看nk.bin中包含的文件)

Viewbin是微软提供的一个命令行工具&#xff0c;在WinCE5.0和WinCE6.0中&#xff0c;可以在"/WINCE600/PUBLIC/COMMON/OAK/BIN/I386"找到他。Viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小&#xff0c;运行的起始地址等。还能查看到里…

元素多层嵌套,JS获取问题

如果一段html嵌套过多&#xff0c;在js中获取还是比较麻烦的&#xff0c;我写了几套方案&#xff0c;大家可以参考参考&#xff0c;如果你有好的方法&#xff0c;也分享出来&#xff0c;让我们瞧瞧。 HTML&#xff1a; <!DOCTYPE html> <html lang"en"> …

MFC静态文本控件设置超链接

有时我们需要在窗口上设置一个超链接&#xff0c;比如在Aboutdlg上设置“我的博客”这样的超链接.具体的设置方法如下。 1、首先我们在窗体上添加一个Static文本控件&#xff0c;修改Caption属性&#xff0c;设置成你想要的超链接标题&#xff0c;比如“更多内容欢迎访问小梦的…

百度云「升级战」:王海峰站台,新架构全面AI化,AI和知识中台登场

5月18日&#xff0c;"ABC SUMMIT 2020百度夏季云智峰会"在线上召开。刚刚经历了人事变动的百度云迎来重磅升级&#xff0c;大会以"百度智能云加速产业智能化"为主题&#xff0c;百度智能云全新战略、新架构首次亮相&#xff0c;AI中台、知识中台两大创新平…

Mysql实现非程序控制读写分离

五一假期&#xff0c;有个博友给我发邮件&#xff0c;说我的这篇blog&#xff1a;http://bobwu.blog.51cto.com/2918362/537077 只能通过程序员在程序中实现读写分离&#xff0c;咨询能否实现程序员无察觉的读写分析&#xff0c;呵呵&#xff0c;我明白意思。回答是肯定的&…

MFC系统托盘的实现

通常电脑里边的软件&#xff0c;当你打开后会在电脑最右下角的任务栏上生成一个系统托盘&#xff0c;当你点击最小化或者点击关闭按钮后&#xff0c;若想恢复窗口&#xff0c;可以左键双击或者单机这个系统图标&#xff0c;同时鼠标右键点击&#xff0c;又会有其他的菜单弹出&a…

王海峰发布百度智能云最新架构,推出AI中台和知识中台

5月18日&#xff0c;在百度云智峰会上&#xff0c;百度CTO王海峰发布最新百度智能云架构规划。首先&#xff0c;他分享了百度利用AI、大数据、云计算等技术帮助疫情防控、复工复产的成果&#xff1a;AI多人测温1周检测2700万人次&#xff0c;时空大数据记录人流迁徙24亿人次&am…