关于模态对话框的销毁问题

非模态对话框的创建和销毁及全局指针的使用注意事项 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 阅读详情

模态对话框,在一些应用程序中经常有必要存在,但也有许多的问题。

问题一:阻塞消息的处理。这个问题比较好处理。

问题二:即使在单线程的程序中,也会导致程序的异步执行。工作中,我遇到过这种类似的问题。控制模块调用类似于DeleteInstance的函数销毁某个模块,但由于模块内部有摸态对话框的存在,结果呢,出现问题了。
细节如下,在对话框出现的地方,是一个网络来的消息回调处理函数,虽然在调用DeleteInstance的时候,销毁了对话框,但是,由于
调用DeleInstance过快,导致了在这个过程处理之后,网络的消息回调函数继续处理,但是,处理的那个类已经不存在了。结果Crash
了。针对这个问题,可以在控制模块和被控制模块之间进行协商,也可以在调用DeleteInstance之前,调用Sleep,休息一会。这样,
所有的问题就可以处理了。
       

MFC中模态和非模态对话框 参考博客:http://www.cnblogs.com/ikangkang/p/5965168.html 1.简述   1.1模态对话框(model dialog box)     当模态对话框显示时,程序会暂停执行,直到关闭这个模态对话框之后,才能执行程序中的其他任务。点击模态对话框中的OK按钮,模态对话框会被销毁。   1.2非模态对话框(modeless dialog 阅读详情

相关推荐

关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值

当然网上关于这方面的技术博文非常多,此处我只是进行一下小记,再加一点自己的体会,方便以后查询。一、模态对话框 1.创建及显示 模态对话框是一种阻塞式的对话框,即没有处理完该对话框,不能对其他地方进行操作。比如我自己项目中药输入网络流的播放url的那种对话框。它的创建很简单。Curl_File dlg; if (dlg.DoModal()==IDOK) { //d

人至贱则无敌 3280

对话框的常用回调函数(窗口创建时的消息和窗口销毁时的消息)

无论是模态对话框还是非模态对话框,都可以直接申请基类CDialog 对象来创建。 窗口创建时的消息和虚函数包括WM_CREATE、WM_INITDIALOG、和PreSubclassWindow等;窗口关闭时的消息和虚函数包括WM_CLOSE、WM_DESTORY、OnOK和 OnCancel等。有些消息是所有窗口通用的,例如,WM_CREATE、WM_CLOSE、WM_DESTORY等。有些消息...

一丁的博客 2067

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

VC++模态对话框和非模态对话框

MFC中有两种类型的对话框:模态对话框和非模态对话框。 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。 模态对话框的创建:创建模态对话框需要调用CDia

Ryan 的 Blog 3187

MacOS多次踩坑后成功安装Homebrew

来一次性成功安装Homebrew吧 官网提供的安装脚本无法成功安装Homebrew,原因大家都懂的,故采用脚本安装的方式。 下载homebrew的安装脚本brew_install 在Download路径下执行如下脚本 curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install 修改brew_install脚本 修改brew_install脚本。如果你的脚本打开之后是如下

weixin_41847116的博客 1981

Multisim实战:从8选1到32选1数据选择器的完整搭建指南(附常见问题解决)

本文提供了一份详尽的Multisim实战指南,手把手教你从基础的8选1数据选择器开始,逐步级联搭建16选1乃至32选1数据选择器。文章深入剖析了级联的核心逻辑、片选方案以及使用译码器的专业方法,并附带了电源连接、输出冲突、信号毛刺等常见问题的诊断与解决技巧,帮助电子工程学生和爱好者扎实掌握数字电路的系统设计与仿真调试。

dd012的博客 729

MFC模态与非模态对话框的创建与销毁

1、模态对话框的创建 (1)添加新的模块对话框资源,在ResourceView标签中右键项目选择“add resource...”,添加一个对话框资源,并修改其ID(主要为了方便后续操作),例如修改为IDD_DLG_TEST1。 (2)为该新添加的窗口创建新类CDlgTest1 (3)创建模态对话框: *定义一个CDlgTest1类的指针m_pDlgTest1. *为类m_pDlgTes

逍遥子曰: 2193

告别手动改Hex!用Vector HexView命令行5分钟搞定固件数据“乾坤大挪移”

本文详细介绍了如何利用Vector HexView命令行工具快速实现嵌入式固件数据的自动化迁移,告别手动修改Hex文件的繁琐流程。通过实战案例和脚本示例,展示了如何5分钟内完成数据地址范围的重新映射,提升嵌入式开发效率,特别适用于烧录文件的内存布局调整。

weixin_30635053的博客 710

模态对话框与非模态对话的几种销毁方法与区别

模态对话框与非模态对话的几种销毁方法与区别  先着一个注意点,自己误识了好久: CloseWindow是一个函数,可以用来最小化指定的窗口,但并不销毁该窗口。 先说下模式对话框调用的原则。 在模式对话框下,用CDialog::OnOK()或CDialog::OnCancel()以及CDialog::OnClose()关闭对话框。 一定要注意之前的C

Barry的博客 4846

数电-基于FPGA的自动售货控制系统设计

本次数电的课程设计是设计一款基于FPGA的自动售货控制系统,因为手上暂时没有FPGA的板子,所以先采用proteus仿真进行设计,观察系统效果,等之后FPGA板子下发,再移到quartus上调试和下载。同样是自己第一次自主设计电路系统,可能在功能上不完整或者逻辑上有错误,大家多多包涵,欢迎沟通交流。

gg1067的博客 2289

PCB工艺-SI9000-模型选择

本文介绍了PCB设计中常用的阻抗计算模型,主要包括外层、内层和嵌入式三类共12种计算模型,涵盖单端/差分、共面等不同场景。针对阻抗计算中的关键参数,文章提供了经验值参考:表层走线厚度0.035mm(1.4mil),内层0.0152mm(0.6mil);并列出常见PP材料的介电常数(3.8-4.5)和成品厚度(3-7.5mil)。作者建议90%的设计问题可通过上述模型解决,层叠参数建议咨询PCB厂家获取。

weixin_50120208的博客 1382

MFC 非模态对话框覆盖主对话框销毁问题

将Create第二个参数改成GetDesktopWindow()可解决

lijie0073237的专栏 662

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 406

MFC编程中创建模态对话框和非模态对话框的差异

书籍:《Visual C++ 2017从入门到精通》的3.7 模态对话框和非模态对话框环境:visual studio 2022内容:[例 3.9] 创建一个非模态对话框在 MFC 编程中,模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)是两种核心的交互组件,其差异主要体现在​​等方面。

felicity_one的博客 1122

YOLO26 无损剪枝:稀疏训练 + 结构化通道裁剪

YOLO26 无损剪枝链路:YOLO26s (7.2M) → 稀疏训练 30 epoch (L1 on BN gamma, lam=0.01) → 阈值剪枝 50% (gamma<quantile(0.5)) → 结构化重建 Conv+BN → 微调 10 epoch (lr=1e-4) → YOLO26n (1.9M, mAP50 0.808, 仅降 0.6%)。核心贡献:稀疏训练让 BN gamma 趋向二元分布 (近 0 或近 1), 剪枝阈值可直接取 median 自动 50% 压缩。

m0_64661770的博客 263

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

非模态对话框销毁的问题,SldWorks二次开发的朋友可以看看

luolizhuiyuyun720的专栏 744

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

MFC模式对话框重复创建的销毁处理

最近写了一个用户请求提示框,基于MFC框架里的CDialog创建。曾考虑使用非模态对话框,但需要手动设置ParentWnd->Disable(),因状态太多,处理时比较繁琐,遂考虑创建自绘模态对话框,于是问题就来了……1、重写OnInitDialog(),加入自己的一些需求控件,图片资源等。2、添加一个接口ShowModalWnd来启动模态对话框。问题是:当一个用户的界面已经存在了一个模态对话框时,若此时再有用户请求某项操作时,就需要先关闭当前对话框,再重新创建一个模态对话框出来,显示新的提示内容。所以我先

IcebergSnowfox的专栏 4436

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

模态窗口与非模态窗口销毁方法

前几天发现自己的程序中使用非模态对话框,Debug版本有警告提示如下:     Warning: calling DestroyWindow in CWnd::~CWnd OnDestroy or PostNcDestroy in derived class will not be called     由于是Warnning,就没有太在意,后来随意上网一找发现,这个问题还是很严重的问题。

eryadabendan的专栏 940

MFC中非模态对话框的创建和销毁

1、非模态对话框的创建: CTestDlg *pDlg=new CTestDlg; pDlg->Create(IDD_TESTDLG,this); pDlg->ShowWindow(SW_SHOW); 2、非模态对话框的销毁: 销毁非模态对话框只需要调用oncancel函数就可以了,但是要注意两点: 非模态对话框需要重载函数OnCanel和PostNcDestroy,并且要在Oncanel

没难度、有态度、不泄气、不放弃 1386

非模态对话框

1、 在资源里新建对话框 2、 class wizard 新建相应的对话框类,继承于CDialog类 3、 在相应的响应函数中添加如下代码(别忘记包含类的头文件): CXXXDialog XXX; XXX.DoModal(); 4、Note:  MFC菜单需要注意的是,菜单有两个,一个是空框架下的,一个是有文档下的,因此要注意响应函数函数的位置,比如,如果响应

Qt&MFC 1169

C++非模态对话框自动销毁的好方法

C++非模态对话框自动销毁的好方法

eickandy的专栏 2005

《MFC那点事儿》の模态对话框和非模态对话框

MFC中有两种类型的对话框:模态对话框和非模态对话框。模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。模态对话框的创建:创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能是创建并显示一个模态对话框,其返回值将作为CDialog类的另一个成员函数:EndDialog的参数,后者的功能是关闭模态对话框。一般显示模态对话框的实现代码如下:void CASCEVi

ASCE1885 1990

模态对话框退出DoModal过程中需注意的陷阱

遇到问题 窗口ParentWnd下有一个子窗口ChildWndA,ChildWndA交互时弹出一个模态对话框ChildWndB,该模态对话框的父窗口是ParentWnd。 交互逻辑在ChildWndA对象的成员函数中处理。 当弹出对话框ChildWndB, 关闭子窗口ChildWndA, 再操作对话框使得对话框退出对话框窗口过程时,造成crash 出现问题的原因 对话框的窗口过...

diyangpei9077的博客 983
上一篇: 转:一个女孩写的经典程序!!!
下一篇: BT种子文件格式
阿里教主
博客等级 码龄22年 12粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值