文本方式下圖形提示界面制作_第1頁
文本方式下圖形提示界面制作_第2頁
文本方式下圖形提示界面制作_第3頁
文本方式下圖形提示界面制作_第4頁
文本方式下圖形提示界面制作_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、文本方式下圖形提示界面制作在商品化的軟件中,有大量的提示信息界面以使用戶清楚軟件的狀態(tài)和運行情況,使用漢字提示可以大大方便不懂西文提示的用戶。但如果少量的漢字提示在圖形方式下實現(xiàn),將使程序的設(shè)計復(fù)雜化,而且圖形方式比文本方式的實現(xiàn)要慢得多。本文使用EGA文本方式下漢字顯示原理,設(shè)計制做了一個微機駐留報警系統(tǒng)的封面提示信息,提示制做人、版權(quán)、公司徽標等信息,實現(xiàn)了漢字,圖形,字符的彩色提示界面。下面討論實現(xiàn)的具體方法及原理。一、漢字字模數(shù)據(jù)的提取文本方式下的漢字顯示是通過用漢字字模改寫西文字符字模的方法實現(xiàn)的,所以應(yīng)首先獲得漢字字模數(shù)據(jù)。各種漢字操作系統(tǒng)可以提供不同大小和字體的漢字字模,本文作為

2、一個實例,從金山DOS的cclibj.dot的字庫中獲得所要顯示的楷體漢字字模的1616點陣數(shù)據(jù)。字庫的讀取用C語言實現(xiàn),具體方法如下。(1)把需要顯示的漢字作為同字符同樣看待的字符串賦值于一個內(nèi)存變量f,漢字字符串的值在WPS的N命令下輸入,然后轉(zhuǎn)入C語言進行編程。(2)在C語言的環(huán)境中漢字字符串的值是國標碼,字模的讀取,就是利用所要顯示的漢字國標碼計算此漢字在字庫中對應(yīng)的字模的位置,然后讀取字庫中的32字節(jié)的字模數(shù)據(jù)至內(nèi)存緩沖區(qū)buf中。C語言中漢字串的國標碼與cclibj.dot字庫中一條字符記錄具有如下的對應(yīng)關(guān)系:C1,C2是整型數(shù)輔助變量,ihi、ilo表示國標碼的高兩位和低兩位整型

3、數(shù)。l為長整型數(shù),用于字模查找定位。C1=(i-a0H)+94C2=i-a0H+c1-659l=C2*32L利用函數(shù):lseek(fp, l, seek-set);read (fp, buf,32);找到字模開始位置,并讀入32字節(jié)字模數(shù)據(jù)到內(nèi)存緩沖區(qū)buf中。(3)使用輸出函數(shù)的16進制輸出格式,把緩沖區(qū)buf的內(nèi)容輸出并記錄下來。本例中獲得的“天驕”字模數(shù)據(jù)如下:天:087ffc 1 010 1014fffe 10 280 280440 4 40820 101020 e o4驕:8cfdfo 8 2048 204bfe 48 5048 887e8c4 8 81c 88e48844 88 1

4、48898 2 8實現(xiàn)程序見附錄程序1。二、圖形字模的設(shè)計由于圖示沒有統(tǒng)一的標準,所以顯示圖形的圖模數(shù)據(jù),用手工設(shè)計完成。本例中的圖形是公司的徽標,使用11個816的西文字符點陣表示圖形。11個西文字符點陣表示的圖模數(shù)據(jù)見程序中的row1-graph, row2-graph, row3-graph, 分別表示圖1中的第一行,第二行和第三行的圖模數(shù)據(jù)。T5S08500.GIF;圖1三、字模和圖模數(shù)據(jù)的寫入1.可修改的字模表EGA配有的顯示存儲器分成4個獨立區(qū)段,稱為4個頁面。在文本方式下頁面0和頁面1分放屏幕字符的ASCII碼和屬性字節(jié),而頁面2則用來存放字模表。EGA的字模表本來是存儲在ROM

5、中的,但當(dāng)每次初始化文本方式時,EGA的BIOS會把字模表拷貝到顯示存儲器的頁面2中,由于字模表已移到RAM中,用戶程序就能夠?qū)ψ帜_M行存取和修改了。2.字模表的結(jié)構(gòu)EGA的字符寬度固定為8個像素,字符高度允許從1到32范圍取值,字模表是根據(jù)不間的字符集分塊存儲的,每個字符集內(nèi)則按字符的ASCII碼值從小到大的順序排列。每個字符固定占有32B,分別對應(yīng)字模從上到下的32個掃描行。但并非所有的掃描行全部使用,視不同的顯示模式使用其中一部分掃描行。因此,1616點陣的漢字字模占用2個西文字符,而圖形實現(xiàn)則視情況占用若干個西文字符。3.字模的裝入字模和圖模數(shù)據(jù)的寫入可通過BIOS INT 10H子功

6、能11h來實現(xiàn)。輸入?yún)?shù):AH=11HAL=0ES: BP=字模數(shù)據(jù)地址CX=裝入字符個數(shù)(1256)DX=起始字符(0255)BL=字符集序號(03)BH=字符高度(132)其中,字模數(shù)據(jù)地址是程序中的字模數(shù)據(jù)區(qū)的首地址。而起始字符是字模數(shù)據(jù)寫入顯示緩沖區(qū)開始的位置。四、漢字及圖形的彩色顯示1.西文字符的顯示原理輸出文本時,頁面0存入要輸出字符的ASCII碼值,頁面1存入字符屬性。由頁面0的ASCII碼值索引到頁面2的字符發(fā)生器,再結(jié)合頁面1的屬性便可在屏幕上顯示相應(yīng)的字符,如圖2所示T5S08501.GIF;圖22.漢字及圖形的顯示利用西文字符的顯示原理,使得字模未修改前應(yīng)顯示的西文字符顯示成修改后的漢字字?;驁D模,通過使用被修改過的數(shù)個西文字符字模,顯示漢字或圖形。3.顯示輸出BIOS INT10的子功能13H完成字符的輸出。輸入?yún)?shù):AH=13HAL=1BL=字符屬性CX=顯示字符個數(shù)DH=顯示字符的行號DL=顯示字符的列號ES: BP=顯示字符串的首地址其中,顯示字符串的開始字符由用戶在頁面0的ASCII碼空間內(nèi)可以任意取值,字符屬性可以設(shè)定顯示的

溫馨提示

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

最新文檔

評論

0/150

提交評論