2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式系統(tǒng)設計與實例開發(fā)——基于32位微處理器與實時操作系統(tǒng)第八講 基于?C/OS-Ⅱ的軟件設計,uCOS-II的不足之處,只有多任務調度的簡單內核內存管理過于簡單,幾乎沒有動態(tài)內存管理功能文件系統(tǒng)和圖形界面需要外掛對于設備驅動程序沒有專門統(tǒng)一的接口,對?COS-II進行必要的擴展,要想實現一個相對完整、實用的嵌入式操作系統(tǒng),還需要相當多的擴展性的工作。通過本章的學習,讀者可了解以下知識:建立FAT兼容的文件系統(tǒng)的建立方法

2、外設及驅動程序的實現基于Unicode的漢字庫建立方法基本繪圖函數的實現其它實用API函數,基于?COS-II擴展RTOS的體系結構,1.系統(tǒng)外圍設備的硬件部分系統(tǒng)外圍設備的硬件部分包括:液晶顯示屏(LCD)、USB通信模塊、鍵盤、海量Flash存儲器、系統(tǒng)的時鐘和日歷。外圍設備的硬件部分是保證系統(tǒng)實現指定任務的最底層的部件。2、驅動程序模塊驅動程序是連接底層的硬件和上層的API函數的紐帶,有了驅動程序模塊,就可以把操作系

3、統(tǒng)的API函數和底層的硬件分離開來。硬件的改變、刪除或者添加,只需要隨之改變、刪除或者添加提供給操作系統(tǒng)的相應的驅動程序就可以了。而不會影響到API函數的功能,更不會影響到用戶的應用程序。,基于?COS-II擴展RTOS的體系結構,3.操作系統(tǒng)的API函數在操作系統(tǒng)中提供標準的應用程序接口(API)函數,可以加速用戶應用程序的開發(fā),統(tǒng)一應用程序的標準,同時也給操作系統(tǒng)版本的升級帶來了方便。在API函數中,提供了大量的常用模塊,可以大大

4、簡化用戶應用程序的編寫。4.實時操作系統(tǒng)的多任務管理?C/OS-Ⅱ作為操作系統(tǒng)的內核,主要的任務就是完成多任務之間的調度和同步。5.系統(tǒng)的消息隊列這里所說的系統(tǒng)的消息隊列是以?C/OS-Ⅱ的消息隊列派生出來的系統(tǒng)消息傳遞機制,用來實現系統(tǒng)的各個任務之間、用戶應用程序的各個任務之間以及用戶應用程序和系統(tǒng)的各個任務之間的通信。,基于?COS-II擴展RTOS的體系結構,6.系統(tǒng)任務系統(tǒng)任務主要包括液晶顯示屏(LCD)的刷新任務、系

5、統(tǒng)鍵盤掃描任務。這兩個任務是操作系統(tǒng)的基本任務,隨著操作系統(tǒng)的啟動而運行。7.用戶應用程序用戶的應用程序建立在系統(tǒng)的主任務(Main_Task)基礎之上。用戶應用程序主要通過調用系統(tǒng)的API函數對系統(tǒng)進行操作,完成用戶的要求。在用戶的應用程序中也可以創(chuàng)建用戶自己的任務。任務之間的協(xié)調主要依賴于系統(tǒng)的消息隊列。,基于?COS-II擴展RTOS的體系結構,嵌入式文件系統(tǒng),什么是文件系統(tǒng)(File System),文件系統(tǒng)的定義 —

6、—操作系統(tǒng)中組織、存儲和命名文件的結構,是操作系統(tǒng)中統(tǒng)一管理信息資源的一種軟件,管理文件的存儲、檢索、更新,提供安全可靠的共享和保護手段,并且方便用戶使用文件系統(tǒng)的功能 ——文件的構造、命名、存取、保護等。文件系統(tǒng)的存儲媒質 ——磁盤(軟盤、硬盤)、光盤、FLASH(盤)、RAM、ROM、網絡甚至設備等,基于NAND FLASH的嵌入式文件系統(tǒng),Flash盤的FAT結構,FLASH讀寫的特點,(1)必須以Page為

7、單位進行讀寫;(2)寫之前必須先擦除原有內容;(3)擦除操作必須對Block進行,即一次至少擦除一個Block的內容 針對這種情況,將Flash的一個Page定為1個扇區(qū),將其1個Block,32個扇區(qū)定為一個簇,這樣,簇的容量剛好為512*32=16K,滿足FAT16對簇大小的要求,FLASH文件系統(tǒng)的要求,(1)掉電安全:嵌入式系統(tǒng)的運行環(huán)境一般比較惡劣,但同時又要求有較高的可靠性。這就對FLASH文件系統(tǒng)提出了較高的要

8、求,無論程序崩潰或系統(tǒng)掉電,都不能影響文件系統(tǒng)的一致性和完整性,文件系統(tǒng)的寫入、垃圾回收等操作對系統(tǒng)異常中止都非常敏感,極易造成數據丟失和數據垃圾,在文件系統(tǒng)設計和選用時應考慮;(2)平均使用(wear-leveling)率:由于FLASH扇區(qū)的擦除次數有限制,要求能夠均勻使用各扇區(qū),以延長FLASH的使用壽命;(3)高效垃圾回收(garbage collection):任何存儲器在分配使用一段時間后,都會出現空區(qū)和碎片數據,為保證

9、存儲空間的使用率,方法是先移動扇區(qū)數據,再擦除整個扇區(qū);(4)低空間消耗(lov overhead):指文件系統(tǒng)管理機構在FLASH存儲器上的空間消耗,該空間用于FS建立,而不能用于實際數據的存儲,可以提高有用數據的存儲空間,FLASH文件系統(tǒng)的分類,(1)集中管理文件系統(tǒng)特點:存儲器空間的使用信息集中存放在存儲器的某個地方,存儲器的其它區(qū)域用于存放數據,數據必須依賴關鍵信息區(qū)才能被索引和使用缺點:需要大量緩存空間,當某扇區(qū)需

10、要更新時,先將扇區(qū)數據備份到RAM中,再進行擦除操作,最后將修改后的備份寫入FLASH,難以保證掉電安全,不能均勻使用存儲器空間,特別是關鍵信息區(qū),對文件系統(tǒng)的使用都會改寫該區(qū),導致FLASH快速損壞;,FLASH文件系統(tǒng)的分類,(2)線性文件系統(tǒng)概述:每個文件相關的信息都連續(xù)存放在存儲器中,實現簡單,讀寫快速,文件系統(tǒng)的關鍵信息分布存放;優(yōu)點:安全性好;能保證存儲器的平均使用,延長了FLASH的使用壽命;缺點:對文件操作效

11、率低,不易實現添加、插入、剪切等操作;,FLASH文件系統(tǒng)的分類,(3)日志文件系統(tǒng)概述:日志結構的文件系統(tǒng)使用順序的、只增的日志作為磁盤上唯一的組織文件系統(tǒng)數據的結構 ,文件的描述可以仍采用傳統(tǒng)的索引組織方式。方法是在內存中將幾次 FS的修改匯集成一個大的日志條目(被稱為段映像 ) ,然后動態(tài)分配磁盤空間并通過一次寫操作寫到磁盤上的一個連續(xù)的、固定大小的日志段 (Segment)中。并定時或當系統(tǒng)發(fā)出同步寫請求時保證日志同步寫到磁

12、盤上;優(yōu)點:恢復快速——不會產生丟失的簇、也不會因為掉電而破壞文件系統(tǒng)。,jffs/jffs2文件系統(tǒng)的優(yōu)缺點,JFFS(Journaling Flash File System)概述:由瑞典Axis通信公司開發(fā)的文件系統(tǒng),主要針對NOR型Flash存儲器設計,提供了掉電安全,平均使用等特性,是基于Linux,由于遵循GPL開放源代碼,易實現移植;日志文件系統(tǒng)提供了更好的崩潰、掉電安全保護jffs2支持對flash的均勻磨

13、損在扇區(qū)級別上執(zhí)行閃存擦除/寫/讀操作功能較好文件系統(tǒng)接近滿時,JFFS2 會大大放慢運行速度——垃圾收集,Nand上yaffs文件系統(tǒng)的優(yōu)勢,yaffs專門為Nand flash設計的日志文件系統(tǒng),系統(tǒng)健壯,節(jié)省RAM,啟動時間快。jffs/jffs2不適合大容量的Nand flashjffs的日志通過jffs_node建立在RAM中,占用RAM空間,對于128MB的Nand大概需要4MB的空間來維護節(jié)點。啟動的時候需要掃

14、描日志節(jié)點,不適合大容量的Nand flash。FAT系統(tǒng)沒有日志。,FAT文件系統(tǒng)的發(fā)展,,DOS 1.0 (1981),DOS 3.0 (1984),Win 95 (1995),Win 95 Osr2 (1996),Win 98 (1998),Win 3.1 (1992),,,,,FAT12,FAT16,VFAT,FAT32,FAT12/FAT16/FAT32的比較,FAT16文件系統(tǒng)基本結構,FAT 文件系統(tǒng)由下面四部分組成保

15、留區(qū) Reserved region存放引導記錄,BIOS信息等FAT 區(qū)FAT信息列表 (12/16/32 bits)根目錄區(qū)目錄信息列表 (32 bytes)文件和目錄區(qū)存放簇信息,保留區(qū) Reserved Region,引導記錄基本信息 ……引導代碼BIOS參數塊 (BPB)字節(jié)/扇區(qū) (512,1024,2048,4096)扇區(qū)/簇 (1,2,4,8,16,32,64,128)根目錄數總扇區(qū)值介質類

16、型 (硬盤,軟盤,FLASH),,FAT 區(qū),通常有 FAT(P)(primary)和FAT(B)(backup)每一個簇都有一個對應的FAT目錄,,,,,,,……,FAT,數據區(qū),,…,FAT 鏈表 (FAT16),……,,目錄樹,FAT 區(qū),典型FLASH文件系統(tǒng)的結構,(1)系統(tǒng)記錄(SR,System Record) 存放媒質信息和最重要的文件系統(tǒng)信息。媒質信息諸如Flash存儲器的類型、容量,劃分成多少個區(qū)塊,每區(qū)塊包含

17、多少個頁面等。文件系統(tǒng)信息包括版本信息、保留區(qū)塊的數目和位置、文件分配表和文件登記表所在的位置和大小、數據區(qū)域的位置和大小等。(2)文件分配表(FAT,File Allocation Table) 存放著Flash存儲器上所有區(qū)塊的占用與空閑情況以及每個文件的存儲連接結構。采用FAT16文件格式,(3)文件登記表(FRT,File Register Table)存放著Flash文件系統(tǒng)中每一個文件的文件代號、文件長度、文件屬性

18、以及該文件的存儲鏈在文件分配表中的入口。(4)數據區(qū)域(Data Area)用于存放文件的數據內容。本Flash文件系統(tǒng)中,數據分配的最小單位是Flash存儲器的一個基本擦除單元,即一個物理區(qū)塊(Block)。,FLASH文件系統(tǒng)的結構,文件系統(tǒng)的實現—FILE結構體,typedef struct{U8 Buffer[BLOCK_SIZE];//文件緩沖區(qū)U32 fileblock;//文件當前的簇的位置

19、U32 filemode;//打開文件的模式U32 filebufnum; //文件緩沖區(qū)中已經讀取/寫入的字節(jié)數U32 fileCurpos;//讀寫的當前位置U32 filesize;//文件的大小}FILE;,與FLASH存儲器的接口函數,塊擦除unsigned char Erase_Cluster(unsigned int cluster)頁寫入int WritePag

20、e(unsigned int block,unsigned int page,unsigned char *pPage)頁讀出void ReadPage(unsigned int block,unsigned int page,unsigned char *pPage),文件系統(tǒng)的相關函數,始始化文件系統(tǒng) void initOSFile(char filename[],U32 OpenMode)打開文件 FILE* OpenOS

21、File(char filename[],U32 OpenMode)讀文件到緩沖區(qū) U32 ReadOSFile(FILE* pfile,U8* ReadBuffer,U32 nReadbyte)把緩沖區(qū)內容寫入文件 U32 WriteOSFile(FILE* pfile,U8* WriteBuffer,U32 nWritebyte)關閉文件,釋放緩沖區(qū) void CloseOSFile(FILE* Pfile),OpenOSFi

22、le的工作的流程圖,ReadOSFile函數的程序流程圖,ReadOSFile函數的程序流程圖,,WriteOSFile函數的程序流程圖,WriteOSFile函數的程序流程圖,,CloseOSFile函數的程序流程圖,CloseOSFile函數的程序流程圖,嵌入式GUI技術,GUI的概念,GUI的定義 Graphics User Interface, 是指計算機與其使用者之間的圖形化對話接口。GUI的主要特征:

23、 ——Windows,采用窗口界面,每個窗口是用戶或系統(tǒng)的一個工作區(qū)域。一個屏幕上可以有多個窗口。 ——Icons,采用形象化的圖標或圖符,易于操作者理解與操作。 ——Menu,采用菜單,可供用戶選擇的功能提示 ——Pointing Devices ,指鼠標器、觸摸屏等,便于用戶直接對屏幕對象進行操作。,嵌入式GUI的特點,體積小功能強;圖形算法簡潔、快速,占用系統(tǒng)資源少可靠性高;模塊結構,

24、便于移植和定制,嵌入式GUI的實現方法,1)按照需求開發(fā)滿足自身特定需要的GUI系統(tǒng);2)將GUI作為一個軟件層從應用程序中剝離,GUI的支持邏輯由應用程序自己負責;3)設計一個支持大多數常見的GUI對象的應用編程接口庫,使其具有與其他通用開發(fā)工具相類似的調用方法(如Win32)的GUI系統(tǒng),幾種典型的嵌入式GUI,Compact X-Window System:可擴展性好、可移植性好,代碼尺寸大 Microwindows

25、:開放源碼的嵌入式GUI軟件,可移植性好,圖形功能出色。OpenGUI :自由軟件。匯編實現的內核,并利用MMX指令進行了優(yōu)化,OpenGUI運行速度非??臁VС?32 位處理器,可以在MS-DOS,QNX和Linux下運行。主要用來在這些系統(tǒng)中開發(fā)圖形應用程序和游戲 Qt/Embedded: QT 庫開發(fā)商Trolltech 推出的面向嵌入式系統(tǒng)的 QT 版本??梢浦残院?,價格較貴。 MiniGUI:自由軟件,面向嵌入式系

26、統(tǒng)或者實時系統(tǒng)的圖形用戶界面支持系統(tǒng)。它主要運行于 Linux ,還可以運行在任何一種具有 POSIX 線程支持的 POSIX 兼容系統(tǒng)上,Qt/Embedded,可移植性好模塊化設計開放源代碼圖形界面漂亮,Microwindows,跨平臺 不需 X Server 采用 FLTK Toolkits 支持 TrueType 字型,MiniGUI,支持 GB2312 與 BIG5 字集支持多種格式字體,例如:TrueType、

27、Adobe Type1等。 GUI函數 ( MoveTo、LineTo、FillBox、Rectangle、Circle、TextOut、DrawText ..等 ),MiniGUI,面向實時嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng)1999 年初以 GPL 條款發(fā)布了第一個版本,國際知名的自由軟件項目已廣泛應用于數控系統(tǒng)、手持信息終端產品、彩票機、DVR 系統(tǒng)、金融終端、KTV 點播系統(tǒng)、POS 機等等已成為跨操作系統(tǒng)的圖形用戶界

28、面支持系統(tǒng):可在Linux/uClinux、eCOS、uC/OS-II、VxWorks、pSOS 等操作系統(tǒng)上運行已驗證硬件平臺: Intel x86, ARM (ARM7 /AMR9 /StrongARM/xScale), PowerPC, MIPS, M68K, ColdFire,嵌入式GUI的結構模型,嵌入式硬件平臺,嵌入式操作系統(tǒng),,窗口模型,,顯示模型,,用戶模型,顯示模型:圖形在窗口上的基本顯示模式窗口模型:窗口如何顯示

29、及改變用戶模型:構造用戶界面的工具及如何在屏幕上 組織各種圖形對象,以及這些對象之間如何 交互的說明。,圖形用戶系統(tǒng)是由顯示模型接口程序、窗口模型接口程序和用戶模型接口程序共同組成的。,嵌入式GUI的體系結構,(1)API提供操作各種GUI對象(如窗口、菜單等)的應用編程接口函數;(2)Core提供核心的圖形操作功能,如消息機制、圖形設備接口、字體、窗口與桌面等的管理功能。(3)IAL和GAL指硬件設備輸入抽

30、象層和圖形輸出抽象層,與底層輸入輸出設備接口,便于GUI掛接不同的輸入輸出設備,實現GUI系統(tǒng)良好的可移植性和通用性,核心圖形操作層的結構,核心機制模塊,核心機制模塊是嵌入式GUI中最重要的組成部分,包括消息機制和事件驅動機制、桌面操作、初始化操作、定時器操作等幾個子模塊,下面介紹幾個主要子模塊的功能:1) 消息機制和事件驅動機制子模塊:這個子模塊主要負責消息的接受、分發(fā)和路由等操作;2) 桌面子模塊:桌面是GUI系統(tǒng)中非常重要的一

31、個部分,相當于一個最底層窗口,其他主窗口都覆蓋其上,維護了GUI中很多總體全局的操作;3) 初始化子模塊:它是GUI系統(tǒng)中最基本的一個模塊,每次GUI運行之初都要通過這個模塊的API函數對整個GUI環(huán)境參數進行設定和初始化操作;4) 定時器子模塊:定時器是GUI中非常重要的組成部分,當用戶需要定時的處理某項操作將會使用該模塊,在系統(tǒng)中也有使用,如編輯框控件中光標的閃爍,進度條控件進度塊的前進等。,字符集與字體模塊,矢量字體 基于矢

32、量的的字體,稱之為可縮放的字體,輪廓字體,或矢量字體。由于這些字體在存儲時亦只存儲了其輪廓,因此,在不同的縮放大小下依然能保持美觀而不會出現“鋸齒”。這點是很適合其完整地在Web上傳輸。一般說來,Logo、線形藝術作品、圖表、動畫、抽象藝術作品等凡較容易定義顏色區(qū)域的圖形,用矢量圖都能產生很好的效果。計算機是以處理數字為基礎,如果要處理文字就需要規(guī)定一個編碼系統(tǒng)用不同的數字來表示相應的字符。我們較為熟悉的有GB、GBK、BIG5、AS

33、CII等等。由于編碼不統(tǒng)一,這些編碼系統(tǒng)之間經常相互沖突。事實上,兩種編碼可能使用相同的數字代表兩個不同的字符;或者使用不同的數字代表相同的字符。在Unicode的雙字節(jié)版本中(UTF-16)使用的是16位編碼方式,可提供65,000多個字符代碼指針。其編碼容量可涵蓋世界上幾乎所有的語言,不僅包括拉丁語,希臘語,斯拉夫語,希伯來語,阿拉伯語,亞美尼亞語,還包括中文,日文和韓文這樣的象形文字,以及平假名,片假名,孟加拉語,泰米爾語,泰國

34、語,老撾語等。目前還有大約8000個代碼指針未用,可供擴展。,圖形設備接口,圖形設備接口(Graphics Device Interface,GDI)象GUI圖形操作的中間件,主要功能是支持與設備無關的圖形操作,GDI將上層應用和不同輸出設備的特性隔離開來,使編制的上層應用能夠毫無困難地在任意一種圖形輸出設備上運行。它向上層應用(最終用戶或者系統(tǒng)其他上層組件)提供了一些基本的服務:位圖(bitmap)、文本(text)、一般繪圖(G

35、en Drawing)等,控件,,一般地,GUI系統(tǒng)都會預先定義一些控件類,當利用某個控件類創(chuàng)建控件之后,所有屬于這個控件類的控件均會具有相同的行為和顯示。利用這些技術,可以確保一致的人機操作界面,而程序員可以像搭積木一樣地組建圖形用戶界面。嵌入式GUI系統(tǒng)使用了控件類和控件的概念,可以方便地對已有控件進行重載,使其擁有一些特殊效果。如需要建立一個只允許輸入數字的編輯框時,可以通過重載已有編輯框而實現,而不需要重新編寫一個新的控件類

36、。,常用GUI函數簡介,在多任務操作系統(tǒng)中,繪圖設備上下文(DC)是繪圖的關鍵。繪圖設備上下文(DC)保存了每一個繪圖對象的相關參數(比如:繪圖畫筆的寬度、繪圖的原點坐標等)。在多任務操作系統(tǒng)中,通過繪圖設備上下文(DC)來繪圖,可以保證在不同的任務繪圖的參數是相互獨立的,不會互相影響。,DC的定義,typedef struct{int DrawPointx;int DrawPointy; //繪圖所使用的坐標點int

37、 PenWidth; //畫筆寬度U32 PenMode; //畫筆模式U32 PenColor; //畫筆的顏色int DrawOrgx; //繪圖的坐標原點位置int DrawOrgy;int DrawRangex; //繪圖的區(qū)域范圍int DrawRangey;U8 bUpdataBuffer; //是否更新后臺緩沖區(qū)U32 Fontcolor; //字

38、符顏色}DC,*PDC;,DC的使用,DC創(chuàng)建,PDC pdc;pdc=CreateDC();,典型的繪圖函數(a),void initOSDC(); PDC CreateDC(); void DestoryDC(PDC pdc); void MoveTo(PDC pdc, int x, int y); void LineTo(PDC pdc, int x, int y); void DrawRectFrame(PDC p

39、dc, int left,int top ,int right, int bottom); void Circle(PDC pdc, int x0, int y0, int r);,典型的繪圖函數(b),void SetDrawOrg(PDC pdc, int x,int y, int* oldx, int *oldy) 設置繪圖設備上下文(DC)的原點,典型的繪圖函數(c),void SetDrawRange(PDC pdc, i

40、nt x,int y, int* oldx, int *oldy) 設置繪圖設備上下文(DC)的繪圖范圍 x,y:設定的橫向、縱向繪圖的范圍,如果x(或者y)為1,則表示x(或者y)方向的比例隨著y(或者x)方向的范圍按比例縮放。如果參數為-1,表示方向相反,DC設置舉例,PDC pdc;pdc=CreateDC();SetDrawOrg(pdc,170,50,&oldx,&oldy);SetDrawRange

41、(pdc,800,-1,&oldxrange, &oldyrange); 上面的程序代碼創(chuàng)建一個繪圖設備上下文(DC),將原點坐標設定在液晶屏設備坐標的(170,50),并把繪圖的邏輯坐標的水平值設置成800,垂直范圍按照液晶屏實際的橫縱比例縮放。,DC設置圖例,基于Unicode的字庫,什么是Unicode使用Unicode的優(yōu)點 字符的存儲方式編寫Unicode的程序 Unicode字模的提取Uni

42、code字庫的顯示及相關函數,什么是Unicode,Unicode 是 統(tǒng)一編碼的緊縮寫法世界上常用的編碼系統(tǒng)有數百種之多,但所有的這些編碼系統(tǒng),沒有哪一個能有足夠的字符,可以適用于多種語言文本由于編碼不統(tǒng)一,這些編碼系統(tǒng)之間經常相互沖突Unicode出現改變了這一切在Unicode的雙字節(jié)版本中(UTF-16)使用的是16位編碼方式,可提供65,000多個字符代碼指針,使用Unicode的優(yōu)點,使用Unicode避免了亂碼的產

43、生,使得國際間文本數據交換成為可能解決了多語言文本同平面共存的問題實現了軟件的全球化,避免了軟件產品在貫穿多個平臺、語言和國家時的重建,字符的存儲方式,在圖形操作系統(tǒng)中,字符(包括:中文、英文)通常有2種存儲方式。 一種方式存儲的是字符的圖形點陣 另一種方式是存儲漢字的矢量圖形 在嵌入式處理中,因為處理器的性能和嵌入式系統(tǒng)資源還不如PC機,而且,嵌入式只是針對專一控制而應用的系統(tǒng)。基本上,沒有必要使用矢量字庫。為了進一步加快

44、處理速度,系統(tǒng)中保存有12x12、16x16和24x24三種分辨率的點陣字庫。,提取Unicode字庫,Windows2000及其以后的系統(tǒng)版本,默認的字符處理方式是UnicodeWindows平臺上,有大量豐富的字符資源Windows2000及其以后的系統(tǒng)版本中,提取Unicode字符點陣無疑成了最好的選擇。我們的Unicode字符的提取軟件是使用Microsoft Visual C++ 6.0編寫的。,Unicode字庫分配,本

45、系統(tǒng)中編碼采用雙字節(jié)版本的Unicode格式收集了ASCII字符(0x0000-0x00ff)256個特殊圖形符號(0x2600-0x267f和0x2700-0x27bf)320個中文字符(0x4e00-0x9fff)20992個。,Unicode字庫相關函數,轉換函數void Int2Unicode(int number, U16 str[ ]); int Unicode2Int(U16 str[ ]); void str

46、Char2Unicode(U16 ch2[ ], const char ch1[ ]); 輸出函數void TextOut(PDC pdc, int x, int y, U16 *ch, U8 bunicode, U8 fnt); void TextOutRect(PDC pdc, structRECT* prect, U16* ch, U8 bunicode, U8 fnt),典型的控件,控件是可視化開發(fā)的基礎。對于開發(fā)應用程序

47、的用戶來說,控件是一個獨立的組件,它有著自己的顯示方式,自己的動態(tài)內存管理模式,甚至有的控件還可以向系統(tǒng)發(fā)送自己的消息。用戶不需要掌握控件的內部到底是如何工作的,用戶只需要通過控件提供的API函數,改變控件相應的屬性,從而改變控件的顯示方式??丶囊肟梢苑奖阌脩舻拈_發(fā),加速用戶應用程序界面的編寫速度。為運行在操作系統(tǒng)上的應用程序的界面提供了統(tǒng)一的標準,方便了使用。,系統(tǒng)中的控件,文本框控件列表框控件圖片框控件按鈕控件窗體

48、,控件的使用流程,通用的系統(tǒng)控件,對一個通用的系統(tǒng)控件,包含了如下的數據結構:typedef struct{U32 CtrlType;//控件的類型U32 CtrlID;//控件的IDstructRECT ListCtrlRect;//控件的位置和大小U32 FontSize;//控件的字符大小U32 style;//控件的的邊框風格U8 bVisible;//是否可見}OS_C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論