gui之前已经介绍过了,现在我们来讨论其原理。统称的来说就是事件驱动2333,
像Qt这样的GUI框架通常是通过把现有的操作系​​统的原始对象(窗口,字体,位图等)
包装起来,将它们包装在更平台中立的,类/结构/句柄中,并为你提供操纵他们所需的功能。
在GUI应用程序中,通常有多个可能发生输入的地方,例如执行不同操作或文本字段的按钮。
这是事件发生的地方。例如,点击一个按钮触发一个事件。这个事件需要通过一个事件处理
程序来处理,这个事件处理程序通常只是一个方法,当一个事件对象被触发时会被调用。
你的按钮如何知道事件处理程序?你通常去监听它。

你可以想象一个GUI应用程序有两个阶段:
建立图形用户界面(GUI):在启动阶段的一小段时间,所有的对象被创建并相互连接。 该事件循环:你的GUI是在一个大while循环,并且只是坐在那里空转,直到事件被触发。

这是一个非常简单的例子,但是我会建议你选择一个框架,当点击一个按钮时,尝试显示
一个消息框。

重绘:
*指出要重绘的矩形范围,程序根据该消息,绘制控件。比如上层的窗口移开后,系统会计
算下层窗口将被显示出来的部分,给下层窗口发出重绘消息。这样尽量减少绘制操作及绘制
的范围。

相关链接:
http://xiaoxia.org/upfiles/HOW_SGOS_GUI_WORKS.htm https://blog.mutoo.im/2017/08/16/understanding-event-driven-gui/