学习笔记之深入浅出MFC 第4章 对话框的运行
来源:互联网 发布:网络药理学会议 编辑:程序博客网 时间:2024/05/20 02:55
Windows的对话框以其与父窗口的关系,分为两类:
1、“令其父窗口无效,直到对话框结束”,这种称为model对话框;
2、“父窗口与对话框共同运行”,这种称为modeless对话框。
比较常用的是model对话框。
为了做出一个对话框,程序员需要准备两样东西:
1、对话框模版(dialog template)。这是在RC文件中定义的一个对话框外貌,以各种方式决定对话框的大小、字形、内部有哪些控件、各在什么位置等等。
2、对话框函数(dialog procedure)。其型态非常类似于窗口函数,但是它只处理WM_INITDIALOG和WM_COMMAND两个消息。对话框中的各个控件也都是小小窗口,各有自己的窗口函数,它们以消息与其管理者(父窗口,也就是对话框)沟通。而所有的控件传来的消息都是WM_COMMAND,再有其参数分辨哪一种控件以及哪一种通知消息(notification)。
model对话框的激活到结束的过程,靠两个API函数实现,分别是DialogBox和EndDialog。具体的实现过程如下图所示。
从上图中可以看出对话框从产生到结束的整个过程,现在我们来逐步介绍一下:首先,由DialogBox函数开启一个对话框,在这个函数的参数中指明了对话框面板的名称,父窗口,以及对话框函数名称。其中对话框面板中对对话框中包含的控件、外观等信息进行了设置。这也是呈现在用户眼前的对话框外形了。然后,所有关于对话框的操作相关都在对话框函数中进行。对话框函数的参数跟窗口函数是一样的,都是对传入的消息类型及参数进行处理。这里还是应用了switch/case结构分别对不同的消息进行处理操作。
对话框内部存在一个处理循环,这样就可以随时等待消息的到达并作出处理了。
对话框处理过消息之后,应该传回TRUE;如果未处理过消息,则应该传回FALSE。这是因为你的对话框函数的上层还有一个系统提供的默认对话框函数。如果传回FALSE,该默认对话框函数就会接手处理。
- 学习笔记之深入浅出MFC 第4章 对话框的运行
- 学习笔记之深入浅出MFC 第5章 Windows程序的生与死
- 学习笔记之深入浅出MFC 第9章 仿真MFC之二
- 学习笔记之深入浅出MFC 第9章 仿真MFC 之一
- 学习笔记之深入浅出MFC 第3讲 消息循环
- 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)
- 深入浅出MFC学习笔记(第7章:简单而完整的MFC骨干程序)
- 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)
- 深入浅出MFC学习笔记(第7章:简单而完整的MFC骨干程序)
- 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)
- 学习笔记之深入浅出MFC 第2讲 窗口类注册与窗口的诞生
- 学习笔记之深入浅出MFC 第6章 Console程序介绍
- 学习笔记之深入浅出MFC 第7章 进程与线程(Process and Thread)
- 学习笔记之深入浅出MFC 第8章 C++重要性质-----类封装
- 学习笔记之深入浅出MFC 第8章 C++重要特性----静态变量(static)
- 学习笔记之深入浅出MFC 第8章 C++重要性质---异常处理(Exception Handing)
- 学习笔记之深入浅出MFC 第8章 C++重要性质---Template
- MFC学习笔记之-对话框
- 计算机网络: 同步传输和异步传输(理解)
- [疯狂Java]JDBC:数据库元数据分析
- oracle性能调优-执行计划
- 初始化job,并分析svn日志--initNEW1-UFT.bat
- 从尾到头打印链表
- 学习笔记之深入浅出MFC 第4章 对话框的运行
- Windows系统下IE单双多进程分析
- Coursera Chaptereight:Lists Assignment 8.5
- Java 自定义异常类
- iOS开发之指定UIView的某几个角为圆角
- Java enum的用法详解
- 让多个 DIV 高度相同
- 网络管理 -- TCP/IP协议簇
- Error:Connection timed out:connect.