文本方式下图形提示界面制作_第1页
文本方式下图形提示界面制作_第2页
文本方式下图形提示界面制作_第3页
文本方式下图形提示界面制作_第4页
文本方式下图形提示界面制作_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文本方式下图形提示界面制作在商品化的软件中,有大量的提示信息界面以使用户清楚软件的状态和运行情况,使用汉字提示可以大大方便不懂西文提示的用户。但如果少量的汉字提示在图形方式下实现,将使程序的设计复杂化,而且图形方式比文本方式的实现要慢得多。本文使用EGA文本方式下汉字显示原理,设计制做了一个微机驻留报警系统的封面提示信息,提示制做人、版权、公司徽标等信息,实现了汉字,图形,字符的彩色提示界面。下面讨论实现的具体方法及原理。一、汉字字模数据的提取文本方式下的汉字显示是通过用汉字字模改写西文字符字模的方法实现的,所以应首先获得汉字字模数据。各种汉字操作系统可以提供不同大小和字体的汉字字模,本文作为

2、一个实例,从金山DOS的cclibj.dot的字库中获得所要显示的楷体汉字字模的1616点阵数据。字库的读取用C语言实现,具体方法如下。(1)把需要显示的汉字作为同字符同样看待的字符串赋值于一个内存变量f,汉字字符串的值在WPS的N命令下输入,然后转入C语言进行编程。(2)在C语言的环境中汉字字符串的值是国标码,字模的读取,就是利用所要显示的汉字国标码计算此汉字在字库中对应的字模的位置,然后读取字库中的32字节的字模数据至内存缓冲区buf中。C语言中汉字串的国标码与cclibj.dot字库中一条字符记录具有如下的对应关系:C1,C2是整型数辅助变量,ihi、ilo表示国标码的高两位和低两位整型

3、数。l为长整型数,用于字模查找定位。C1=(i-a0H)+94C2=i-a0H+c1-659l=C2*32L利用函数:lseek(fp, l, seek-set);read (fp, buf,32);找到字模开始位置,并读入32字节字模数据到内存缓冲区buf中。(3)使用输出函数的16进制输出格式,把缓冲区buf的内容输出并记录下来。本例中获得的“天骄”字模数据如下:天: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实现程序见附录程序1。二、图形字模的设计由于图示没有统一的标准,所以显示图形的图模数据,用手工设计完成。本例中的图形是公司的徽标,使用11个816的西文字符点阵表示图形。11个西文字符点阵表示的图模数据见程序中的row1-graph, row2-graph, row3-graph, 分别表示图1中的第一行,第二行和第三行的图模数据。T5S08500.GIF;图1三、字模和图模数据的写入1.可修改的字模表EGA配有的显示存储器分成4个独立区段,称为4个页面。在文本方式下页面0和页面1分放屏幕字符的ASCII码和属性字节,而页面2则用来存放字模表。EGA的字模表本来是存储在ROM

5、中的,但当每次初始化文本方式时,EGA的BIOS会把字模表拷贝到显示存储器的页面2中,由于字模表已移到RAM中,用户程序就能够对字模进行存取和修改了。2.字模表的结构EGA的字符宽度固定为8个像素,字符高度允许从1到32范围取值,字模表是根据不间的字符集分块存储的,每个字符集内则按字符的ASCII码值从小到大的顺序排列。每个字符固定占有32B,分别对应字模从上到下的32个扫描行。但并非所有的扫描行全部使用,视不同的显示模式使用其中一部分扫描行。因此,1616点阵的汉字字模占用2个西文字符,而图形实现则视情况占用若干个西文字符。3.字模的装入字模和图模数据的写入可通过BIOS INT 10H子功

6、能11h来实现。输入参数:AH=11HAL=0ES: BP=字模数据地址CX=装入字符个数(1256)DX=起始字符(0255)BL=字符集序号(03)BH=字符高度(132)其中,字模数据地址是程序中的字模数据区的首地址。而起始字符是字模数据写入显示缓冲区开始的位置。四、汉字及图形的彩色显示1.西文字符的显示原理输出文本时,页面0存入要输出字符的ASCII码值,页面1存入字符属性。由页面0的ASCII码值索引到页面2的字符发生器,再结合页面1的属性便可在屏幕上显示相应的字符,如图2所示T5S08501.GIF;图22.汉字及图形的显示利用西文字符的显示原理,使得字模未修改前应显示的西文字符显示成修改后的汉字字模或图模,通过使用被修改过的数个西文字符字模,显示汉字或图形。3.显示输出BIOS INT10的子功能13H完成字符的输出。输入参数:AH=13HAL=1BL=字符属性CX=显示字符个数DH=显示字符的行号DL=显示字符的列号ES: BP=显示字符串的首地址其中,显示字符串的开始字符由用户在页面0的ASCII码空间内可以任意取值,字符属性可以设定显示的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论