当前位置: 首页 > news >正文

MFC 模态对话框退出机制的探究

一位读者问了这样一个问题:


如果我创建了一个可见的模态对话框,却对用户来说不可用。举个例子,假设我在程序中的其他位置收到一个事件,并且我从事件中调用模态 CDialog 上的 DestroyWindow。我注意到 OnDestroy 是在 CDialog 上调用的,但在将 WM_QUIT 消息发送到模态对话框的消息循环之前,DoModal 永远不会退出。这会导致什么问题?不幸的是,我目前还真的没有找到方法来避免这种情况。

实际上,我不确定这位读者具体想问的问题是什么。如前所述,问题是”这会导致什么问题”

但他在自己的问题中回答了这个问题:导致的问题是: “DoModal 永远不会退出,直到 WM_QUIT 消息发送到模态对话框的消息循环中为止。”

我猜想,他真正的问题是:”为什么销毁窗口不起作用?”。
然后是后续问题: “关闭模式对话框的正确方法是什么?”

这个问题的第一个问题是,它假设我知道 CDialog 是什么。从它的名字来看,我将假设这是一个用于管理对话框的 MFC 类。但是,您甚至不必知道,就可以回答仅根据 Win32 原则的第一个问题:

DestroyWindow 不是退出模态对话框的方式,而应该使用 EndDialog 退出模式对话框。
DestroyWindow 技术适用于非模态对话框。

但是,让我们从另一个角度来看这个问题,这就是我今天的观点:你有 MF C源代码。不要害怕阅读它。特别是因为我个人不使用 MFC,我甚至不知道使用 MFC 进行应用程序设计的基本原理,我一直都是在 Win32 上工作。因此,我不知道答案,但阅读 MFC 源代码的 15 分钟很快就揭示了销毁窗口不起作

相关文章:

MFC 模态对话框退出机制的探究

一位读者问了这样一个问题: ” 如果我创建了一个可见的模态对话框,却对用户来说不可用。举个例子,假设我在程序中的其他位置收到一个事件,并且我从事件中调用模态 CDialog 上的 DestroyWindow。我注意到 OnDestroy 是在 CDialog 上调用的,但在将 WM_QUIT 消息发送到模态对…...

Android13 framework添加关机接口

framework层修改: t0_sys/frameworks/base/core/api/current.txt method RequiresPermission(android.Manifest.permission.REBOOT) public void reboot(Nullable String);method public void rebootp();t0_sys/frameworks/base/core/java/android/os/IPowerManager…...

如何使用ArcGIS Pro为栅格图添加坐标信息

在某些时候,我们从网上获取的资源是一张普通的栅格图,没有任何的坐标信息,如果想要和带坐标信息的数据一起使用就需要先添加坐标信息,在GIS上,我们把这个过程叫做地理配准,这里为大家介绍一下地理配准的方法…...

FDM打印机学习

以下内容摘自网络,仅供学习讨论,侵删。 持续更新。。。 FDM打印机是通过喷头融化丝状耗材(PLA,ABS等材料),然后逐层涂在热床上,一层一层逐级抬高。 结构分类 Prusa i3型是一种龙门结构&#…...

C++进阶-- map和set

关联式容器 在前面,我们所学的vector、list、deque,这些都是序列容器,也就是底层为线性序列的数据结构。 而关联式容器是C标准库中的一种类别,用于存储键值对(key-value pair),关联式容器中的元…...

AI-数学-高中-33概率-事件的关系与运算

原作者视频:【概率】【一数辞典】2事件的关系与运算_哔哩哔哩_bilibili 事件: 和/并事件;积/交事件;互诉事件;对立(补集)事件;...

数据结构:链队

一、定义两个结构体 定义两个结构体,一个结构体是结点的结构体&#xff0c;一个结构体是保留指向对头结点和队尾结点指针的结构体 #ifndef __LINK_QUEUE_H__ #define __LINK_QUEUE_H__ #include <stdio.h> #include <stdlib.h>typedef struct link_node{int data…...

十四、计算机视觉-形态学梯度

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、梯度的概念二、梯度的应用三、梯度如何实现 一、梯度的概念 形态学梯度&#xff08;Morphological Gradient&#xff09;是数字图像处理中的一种基本操作&…...

3月03日,每日信息差

&#x1f396; 素材来源官方媒体/网络新闻 &#x1f384; 国产商用飞机C919及ARJ21首次飞抵老挝 &#x1f30d; 北京将打造新一批智能工厂 &#x1f30b; 阿里云将于3月29日停止商标代理服务 &#x1f381; 起亚在美因远光灯故障召回3.5万辆Telluride汽车 ✨ 天涯社区拟5月1日前…...

leetcode 简单

1. 两数之和 两数之和 方法1&#xff1a;暴力枚举 两次for 循环&#xff0c;记录索引和值&#xff0c;找到合适的值然后返回 方法2&#xff1a;使用哈希表 第一次for循环的时候&#xff0c;就可以使用哈希表记录key的value&#xff0c;可以实现时间复杂度是1&#xff0c;要分…...

服务器硬件基础知识全解析

在信息技术日新月异的今天&#xff0c;服务器作为数据处理和存储的核心&#xff0c;其重要性不言而喻。了解服务器硬件基础知识&#xff0c;对于IT从业者以及广大技术爱好者来说&#xff0c;都是不可或缺的技能。本文将详细解析服务器硬件的基础知识&#xff0c;帮助读者建立起…...

python毕设选题 - 大数据商城人流数据分析与可视化 - python 大数据分析

文章目录 0 前言课题背景分析方法与过程初步分析&#xff1a;总体流程&#xff1a;1.数据探索分析2.数据预处理3.构建模型 总结 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到…...

vmware网络负载均衡方式

基于 IP 哈希的路由&#xff1a; 原理&#xff1a; 基于虚拟机的源和目标 IP 地址以及 TCP/UDP 端口号计算哈希值&#xff0c;并使用该哈希值确定出口网络适配器。这样可以确保同一对源和目标的网络流量始终被路由到相同的网络适配器。应用场景&#xff1a; 适用于大量使用虚拟…...

Docker基础教程 - 2 Docker安装

更好的阅读体验&#xff1a;点这里 &#xff08; www.doubibiji.com &#xff09; 2 Docker安装 Docker 的官网地址&#xff1a;https://www.docker.com/&#xff0c;在官网可以找到 Docker Engine 的安装步骤。 下面进行 Docker 环境的安装&#xff0c;正常情况下 Docker …...

Android 多桌面图标启动, 爬坑点击打开不同页面

备注 &#xff1a; MainActivity 正常带界面的UI MainActivityBt 和 MainActivityUsb 是透明的&#xff0c;即 android:theme"style/TranslucentTheme" ###场景1:只有MainActivity 设置成&#xff1a;android:launchMode"singleTask" 点击顺序&#xff1…...

2024-3-1-网络编程作业

1>操控机械臂&#xff1a; 通过w(红色臂角度增大)s&#xff08;红色臂角度减小&#xff09; d&#xff08;蓝色臂角度增大&#xff09;a&#xff08;蓝色臂角度减小&#xff09;按键控制机械臂 源代码&#xff1a; #include <myhead.h> #define minStep 10 //最小偏…...

pytorch基础2-数据集与归一化

专题链接&#xff1a;https://blog.csdn.net/qq_33345365/category_12591348.html 本教程翻译自微软教程&#xff1a;https://learn.microsoft.com/en-us/training/paths/pytorch-fundamentals/ 初次编辑&#xff1a;2024/3/2&#xff1b;最后编辑&#xff1a;2024/3/2 本教程…...

Python测试框架pytest介绍用法

1、介绍 pytest是python的一种单元测试框架&#xff0c;同自带的unittest测试框架类似&#xff0c;相比于unittest框架使用起来更简洁、效率更高 pip install -U pytest 特点&#xff1a; 1.非常容易上手,入门简单,文档丰富&#xff0c;文档中有很多实例可以参考 2.支持简单的单…...

AI对话系统app开源

支持对接gpt&#xff0c;阿里云&#xff0c;腾讯云 具体看截图 后端环境&#xff1a;PHP7.4MySQL5.6 软件&#xff1a;uniapp 废话不多说直接上抗揍云链接&#xff1a; https://mny.lanzout.com/iKFRY1o1zusf 部署教程请看源码内的【使用教程】文档 欢迎各位转载该帖/源码...

SpringBoot+aop实现主从数据库的读写分离

读写分离的作用是为了缓解写库&#xff0c;也就是主库的压力&#xff0c;但一定要基于数据一致性的原则&#xff0c;就是保证主从库之间的数据一定要一致。如果一个方法涉及到写的逻辑&#xff0c;那么该方法里所有的数据库操作都要走主库。 一、环境部署 数据库&#xff1a;…...

8051单片机16位SFR访问原理与安全实践

1. 16位特殊功能寄存器&#xff08;SFR&#xff09;的基础概念在8051单片机开发中&#xff0c;特殊功能寄存器&#xff08;Special Function Register&#xff0c;简称SFR&#xff09;是CPU与外围设备交互的关键接口。标准的8位SFR使用sfr关键字定义&#xff0c;而16位SFR则需要…...

Redis 缓存实战案例与技术详解

Redis 缓存实战案例与技术详解 1. Redis 简介 Redis 是一种开源的内存数据存储&#xff0c;常用于缓存和消息队列。 2. 配置优化 使用 LRU 淘汰策略配置数据持久化功能 3. 实战案例 案例一&#xff1a;电商秒杀系统 架构&#xff1a;前端系统 Redis 持久化缓存特点&#xff1a…...

Graph Fusion:一张 512 节点的图怎么压到 120 个以内

Operator Fusion 解决单点算子合并&#xff0c;Graph Fusion 在更大范围做整图级别的融合。GE 图引擎收到 ATC 编译好的图后&#xff0c;不是直接拿去执行——它先跑一遍图优化流水线&#xff0c;常量折叠、算子替换、模式匹配、Buffer 复用&#xff0c;把几百个节点的"散…...

Label Studio数据标注工具:从安装到实战的完整指南

Label Studio数据标注工具&#xff1a;从安装到实战的完整指南 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/label-studio Labe…...

轻量神经网络在量子比特实时控制中的嵌入式部署实践

1. 项目概述&#xff1a;当机器学习遇见量子控制在量子计算这个前沿领域&#xff0c;我们每天都在与微观世界的“幽灵”打交道。一个量子比特的状态&#xff0c;就像地球仪上的一个点&#xff0c;可以用布洛赫球面上的经度和纬度来描述。要让这个点精确地旋转到我们指定的位置&…...

Wireshark实战识别与防御ARP欺骗攻击

1. 为什么ARP欺骗不是“黑客电影”里的特效&#xff0c;而是你每天都在裸奔的真实风险 很多人第一次听说ARP欺骗&#xff0c;是在某部电影里看到主角敲几行命令&#xff0c;对面电脑就突然断网、弹出奇怪窗口、甚至开始自动转账——然后心里一紧&#xff1a;“这玩意儿真能这么…...

跟着 MDN 学CSS day_13 :(深入理解CSS中的元素尺寸调整)

在网页布局的世界里&#xff0c;尺寸控制是一切视觉呈现的基础。一个元素到底应该占据多大的空间&#xff0c;是由内容决定还是由我们手动设定&#xff0c;在不同的设备和视口下又该如何自适应&#xff0c;这些问题贯穿于每一个 CSS 开发者的日常工作。MDN 的"在 CSS 中调…...

不花一分钱!用Spacedesk把旧平板变成Windows电脑的无线触控副屏

零成本改造旧平板&#xff1a;Spacedesk无线副屏全攻略家里积灰的旧平板终于有了用武之地。上周整理书房时&#xff0c;我发现抽屉里躺着三年前买的安卓平板&#xff0c;电池已经鼓包&#xff0c;但屏幕完好。正当我准备把它送进电子垃圾回收站时&#xff0c;突然想到&#xff…...

Android应用架构规范深度解析与面试指南

引言 在Android应用开发中,架构设计是确保应用可维护性、可扩展性和稳定性的核心要素。随着移动应用的复杂度日益增加,采用规范的架构模式不仅能提升开发效率,还能减少错误和重构成本。本文将以“架构规范”为核心重点领域,深入探讨Android应用的主流架构模式、实现细节、…...

告别电脑休眠烦恼:MouseJiggler鼠标抖动工具完全指南

告别电脑休眠烦恼&#xff1a;MouseJiggler鼠标抖动工具完全指南 【免费下载链接】mousejiggler Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer back and forth. 项目…...