既然我們上文中提到了當前最主流的交互方式就是圖形化交互,我們就來看看圖形用戶界面的基本結構。現在普遍的系統上都會有一個應用程序框架,而這類框架都會提供一個GUI(Graphics User Interface),有了GUI,作為應用程序的普通開發者就不需要去關注如何去監聽用戶的事件,如何去調度各個程序之間的窗口(窗口直接的覆蓋,隱藏,激活,調度等),窗口的繪制,圖形的繪制,等等。
一個典型的GUI框架要處理:
1.事件的接收和分發;
2.窗口的調度;
3.圖形的繪制 。
所以一個典型的GUI框架需要包括:事件管理器,窗口管理器;圖形設備接口(GDI)。基本結構如上圖:
而一般的數據流圖如下:
可見,在我們的應用程序之下,GUI框架已經做了很多底層的工作,而掌握GUI的運行原則和規律也是很有必要的。目前有很多的GUI框架,
比如symbian系統上的S60UI框架,windows的MFC框架,android的gui框架,QT框架。
GUI里有一個最重要的概念就是“窗口”,當然可能各個系統對此的稱呼不同。但它們都具有這些功能:可以處理消息,有一個可顯示矩形區域,可以繪制重繪(所以窗口也是個繪圖設備),有的可以改變尺寸大小。在GUI的世界里,可以把一切都看成是窗口,桌面也是窗口(根窗口)。
https://blog.csdn.net/guanjungao/article/details/45789357