MFC-对话框

目录

1、模态和非模态对话框:

(1)、对话框的创建

(2)、更改默认的对话框名称

(3)、创建模态对话框

1)、创建按钮跳转的界面

2)、在跳转的窗口添加类

3)、触发我们添加的类实现跳转

4)、事件触发消息,消息响应函数处理消息

(4)、创建非模态对话框

1)、添加非模态对话框类

2)、将事件和消息处理关联

(5)、运行UI结果

2、总结模态对话框和非模态对话框:


1、模态和非模态对话框:

(1)、对话框的创建

(2)、更改默认的对话框名称

ctrl A+delete全部删除对话框上面的默认控件。

ctrl +art+x工具箱快捷键

(3)、创建模态对话框

1)、创建按钮跳转的界面

非模态界面创建过程与模态界面创建类似。

2)、在跳转的窗口添加类

3)、触发我们添加的类实现跳转

创建事件方法1:

创建事件方法2:

创建事件方法3(最常用):

4)、事件触发消息,消息响应函数处理消息

事件的发生传递给Windows,Windows会发送消息给窗口对象

此时的模态对话框的类中就有消息响应函数来处理该消息

(4)、创建非模态对话框

1)、添加非模态对话框类

这个类中包含消息响应函数来处理消息

2)、将事件和消息处理关联

引入消息处理函数的类,方便处理消息

调用处理信息的函数

由于模态对话框由阻塞作用,在局部函数结束也不会释放,但是非模态对话框一闪而过,是因为局部函数结束会释放,所以我们要更改弹出对话框的位置,把他设置为成员函数

注释掉局部函数中的成员,否则就近原则还是当作局部函数成员。

当我们点击非模态对话框创建第二次会报错,由于窗口创建只能创建一次

我们在对话框类的入口函数处加入创建窗口,只会创建一次

(5)、运行UI结果

2、总结模态对话框和非模态对话框:

1、模态对话框:只能处理当前模态对话框的窗口,由于是阻塞所以并不会一闪而过。

2、非模态对话框:可以处理其他对话框窗口,由于非阻塞,局部函数结束释放,一闪而过。

3、按钮名称改变caption,或者点击直接修改,点击事件可以直接双击,其他事件右键属性查找添加

4、先插入窗口,然后添加类

5、模态窗口创建 CDlogExec dlg; dlg.DoModal();

6、非模态创建CDlogShow dlg写到.h中做成员; dlg.Create()写到初始化中也就是框架类入口函数

dlg.showWindow();显示对话框。

相关推荐
Cx330❀5 分钟前
【MySQL基础】详解MySQL数据类型:底层原理、越界测试与最佳实践
linux·开发语言·数据库·c++·mysql
星恒随风9 分钟前
C++ string 入门(一)
开发语言·c++·笔记·学习
旖-旎9 分钟前
《LeetCode 200 FloodFill 岛屿数量DFS解法》
c++·算法·深度优先·力扣·floodfill
前进吧-程序员17 分钟前
反转链表完全指南:辅助容器、三指针、头插法
数据结构·c++·链表
我不是懒洋洋19 分钟前
从零实现一个分布式配置中心:服务发现与热更新
c++
省四收割者21 分钟前
从硬件中断到分布式协程:全景解构高并发机制与 C / Golang 的巅峰对决
c++·分布式·嵌入式硬件·golang
Cx330❀25 分钟前
【Linux网络】从零定制应用层协议:黏包问题、全双工缓冲区与 Jsoncpp 序列化深度解析
linux·运维·服务器·开发语言·网络·c++·人工智能
江屿风30 分钟前
C++图论基础Bellman-Ford与spfa算法如何判断负环
开发语言·c++·笔记·算法·图论
森G37 分钟前
68、项目配置和示例---------多媒体
c++·qt
进击的荆棘1 小时前
优选算法——BFS
c++·算法·leetcode·宽度优先