1、GUI程序开发概述
现代操作系统支持GUI界面
-现代操作系统提供原生SDK支持GUI程序开发
- GUI程序开发是现代操作系统上的主流技术
-不同操作系统上的GUI开发原理相同
-不同操作系统上的GUI SDK不同
2、GUI程序开发原理
GUI程序在运行时会创建一个消息队列
系统内核将用户操作翻译成对应的程序消息
程序在运行过程中需要实时处理队列中的消息
当队列中没有消息时,程序将处于停滞状态
不同操作系统支持相同的GUI开发原理
3、GUI程序开发的本质
GUI程序开发:
-在代码中用程序创建窗口及窗口元素
-在消息处理函数中根据程序消息做出不同响应
4、GUI程序开发实例
多数操作系统以C函数的方式提供GUI SDK
以Windows操作系统为例
5、编程实验
GUI程序开发初体验
GUIDemo.sln
仅提供解析代码(我们重点是QT,这里只是帮助理解GUI程序开发)
分别转到定义地方看看
内部调用的是RegisterClass函数,指定消息处理函数为WndProc(自定义的:将消息映射到消息处理函数)
自定义的消息处理函数内部调用的是系统提供的默认消息处理函数
编译运行
我们关闭窗口,然而却发现
这是因为消息处理函数没有处理退出消息,只是调用的系统消息处理函数(可以正常最大化,最小化等)
然而关闭窗口并不意味着退出(如迅雷,百度网盘),所以程序还在运行
可以通过增加消息处理代码解决
相应的增加相关消息处理代码,可对其它消息处理
即将消息映射到函数,编写相应消息处理函数(或者直接调用系统的相关消息处理函数)
6、小结
现代操作系统提供原生SDK支持GUI程序开发
不同操作系统上的GUI SDK不同
不同操作系统上的GUI开发原理相同
GUI程序开发包括
-在代码中用程序创建窗口及窗口元素
-在消息处理函数中 根据程序消息做出不同响应