欢迎来到天天文库
浏览记录
ID:6442984
大小:371.00 KB
页数:24页
时间:2018-01-14
《第7章 使用者介面与图形子系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章使用者介面與圖形子系統與MicrosoftXP作業系統不同,WindowsCE將Win32API的使用者介面(User32)和圖形設備介面(GDI32)合併成一個新的模組gwes.exe,稱為GWE子系統。GWE是一個縮寫詞,其中G代表Graphics(圖形),W代表WindowManager(視窗管理器),E代表EventManager(事件管理器)。GWE子系統是使用者、應用程式和作業系統之間的圖形使用者介面。GWE支援組成WindowsCE圖形使用者介面的所有視窗、對話方塊、控制項、功能表和資源,使使用者能夠通過
2、執行功能表命令、單擊按鈕等操作來控制應用程式。GWE還以點陣圖、游標、文字以及圖示等形式為使用者提供資訊。即使不具備圖形使用者介面的基於WindowsCE的平臺也使用了GWE的基本視窗和訊息功能,這些功能提供了在使用者、應用程式和作業系統之間進行通訊的方法。本章主要分析GWE子系統的體系結構以及相關的實作程式碼,主要涉及的根源程式位於WindowsCE.NET原始程式碼樹中的[CEROOT]PrivateWinceosCoreosGWE目錄下。需要說明的是,受MicrosoftSharedSourceLicense的
3、限制,GWE子系統中只有GDI部分公開了少量的原始程式碼,User部分的原始程式碼均未公佈,因此本章內容主要著重於GWE子系統體系結構的分析。7.1GWE概述對應於桌面Windows作業系統中的User32,WindowsCEGWE子系統中的USER部分包含了使用者輸入系統(UserInputSystem)、事件管理器(EventManager)和視窗管理器(WindowManager)三個組件。其中使用者輸入系統接收來自鍵盤、滑鼠和手寫筆等設備的訊息,事件管理器管理訊息和訊息佇列,而視窗管理器將訊息回應發送到對應的視窗以實
4、作特定的顯示。GWE子系統中的GDI(GraphicsDeviceInterface,圖形設備介面)部分依靠二維圖形包中的API函式將使用者的繪圖操作通過直線、曲線、填充區域、點陣圖和文字等GDI基本操作來實作,此外GDI還支援點陣字體和TrueType字體。基於WindowsCE的程式設計要通過訊息迴圈。訊息迴圈是在Windows應用程式中的一種迴圈,它負責接收系統傳送過來的訊息,並且把它們發送到相對應的視窗,直到系統表明所有的訊息都發送完畢,訊息迴圈才結束。它包含在WinMain函式中。處理訊息迴圈的函式是WndProc
5、。下面是GWE的一些特殊功能:GWE即時追蹤執行系統的工作情況,所以如果沒有在三分鐘內給設備一些指令的話,GWE將關閉這個設備。GWE還添加了儲存空間不足時的提示和解決方案。雖然在技術實作上儲存空間不夠的提示和解決沒有必要一定成為GWE的一部分,但是在這裏加上一些程式碼實作這種功能是最方便的。因為GWE和輸入相關。如果儲存空間不足,將出現記憶體不足的對話方塊。同時會彈出一個視窗,給出正在執行的程式碼,讓使用者選擇關掉其中的一個或幾個。WindowsCE添加儲存空間不足時的解決程式是基於執行設備的考慮。因為執行WindowsC
6、E的設備一般沒有硬碟,同時也沒有足夠的記憶體,一旦在執行時超過了記憶體的容量,將沒有硬碟保存,所以必須在有可能超過儲存容量的地方結束一些程式以節省空間。當然這在執行桌面Windows作業系統的設備上不常見到。在使用者輸入系統的設計上,WindowsCE也儘量減少執行緒數。它將鍵盤設備和觸控設備的處理直接交給了GWE,並且將這些設備所傳送的訊息直接放在全域(Global)設備佇列中。GWE在設計之初有以下的一些目標:•在小螢幕設備上執行比較穩定:GWE設計的時候提供了足夠的函式以便使用者寫出的程式碼在小螢幕上能夠執行的很好。•
7、和Win32的相容性:和Win32API的相容性是GWE設計時最重要的目標,因為這可以讓那些會Windows程式設計的人能夠在WindowsCE上程式設計。•支援廣泛的顏色位元深度和色彩模式,如1、2、4、8、16、24和32位顏色。這些在桌面Windows作業系統中是沒有提供的。•加上了調節低電壓和對電源的管理的功能設計:這使得系統在判斷使用者沒有使用設備後關掉設備。在上述目標之中,WindowsCE最基本的設計目標是和Win32API相容,它的大部分程式碼也沒有重新寫。和桌面Windows作業系統一樣,WindowsCE
8、的視窗管理器也包括對話方塊管理器、Splash類別和控制項等。具體的結構如圖7.1所示。WindowsCE中的非使用者輸入區和桌面Windows作業系統中的有一些區別。它和視窗管理器結合在一起。在WindowsCE中,一個獨立的功能表列和工具列將佔據太多的空間,所以WindowsCE將功能
此文档下载收益归作者所有