文本方式下图形提示界面制作--免费毕业论文、毕业论文范文、毕业论文格式、毕业论文提纲,毕业论文网,提供计算机应用论文,计算机论文,工学论文毕业论文提纲、毕业论文范文、毕业论文格式等.
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
网站地图
合作联系
收藏本站

首 页 经济学论文 财政税收 证券金融 管理学论文 会计审计 工商管理 财务管理 公共管理 法学论文 理学论文 医药学论文
政治论文 社会学论文 文学论文 教育类论文 工学论文 计算机论文 艺术类论文 哲学论文 文化论文 英语论文 应用文 论文写作指导
邮电通信

   
 ·推荐免费论文
·2007县委办公室先进性教育活动工
·用科学发展观统领农业和农村经济
·计算机实习报告范文
·调查报告:大学生眼中的电子商务
·当前农村初中生学习心理的调查报
·求职信的格式和写作要点 
·英文简历写作的注意事项 
·毕业论文写作的基本要求
·计算机软件许可证协议书
 ·最近更新论文
·在电子商务中如何正确的使用数据
·大型ORACLE数据库优化设计方案
·在VB6.0数据库程序开发中使用ADO
·浅谈VFP报表打印问题
·通用网页查询函数的设计与应用
·构建校园网页面电子邮件系统
·Delphi中画布应用两则
·利用RCM2200实现以太网与异步串口
·Oracle数据库的优化
 ·推荐链接
   当前位置:首页 > 计算机论文 > 计算机应用 > 论文正文
联系我们 客户反馈

文本方式下图形提示界面制作

来源:  [ 2007-3-8 22:21:12 ]  作者:佚名  编辑:
收藏到VIVI | 收藏到365KEY | 收藏到YOUNOTE | 收藏到博采| 收藏到天极网摘 | 收藏到和讯网摘
在商品化的软件中,有大量的提示信息界面以使用户清楚软件的状态和运行情况,使用汉字提示可以大大方便不懂西文提示的用户。但如果少量的汉字提示在图形方式下实现,将使程序的设计复杂化,而且图形方式比文本方式的实现要慢得多。本文使用EGA文本方式下汉字显示原理,设计制做了一个微机驻留报警系统的封面提示信息,提示制做人、版权、公司徽标等信息,实现了汉字,图形,字符的彩色提示界面。下面讨论实现的具体方法及原理。
一、汉字字模数据的提取
文本方式下的汉字显示是通过用汉字字模改写西文字符字模的方法实现的,所以应首先获得汉字字模数据。
各种汉字操作系统可以提供不同大小和字体的汉字字模,本文作为一个实例,从金山DOS的cclibj.dot的字库中获得所要显示的楷体汉字字模的16×16点阵数据。
字库的读取用C语言实现,具体方法如下。
(1)把需要显示的汉字作为同字符同样看待的字符串赋值于一个内存变量f,汉字字符串的值在WPS的N命令下输入,然后转入C语言进行编程。
(2)在C语言的环境中汉字字符串的值是国标码,字模的读取,就是利用所要显示的汉字国标码计算此汉字在字库中对应的字模的位置,然后读取字库中的32字节的字模数据至内存缓冲区buf中。
C语言中汉字串的国标码与cclibj.dot字库中一条字符记录具有如下的对应关系:
C1,C2是整型数辅助变量,ihi、ilo表示国标码的高两位和低两位整型数
。l为长整型数,用于字模查找定位。
C1=(i-a0H)+94
C2=i-a0H+c1-659
l=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 148898 2 8
实现程序见附录程序1。
二、图形字模的设计
由于图示没有统一的标准,所以显示图形的图模数据,用手工设计完成。本例中的图形是公司的徽标,使用11个8×16的西文字符点阵表示图形。11个西文字符点阵表示的图模数据见程序中的row1-graph, row2-graph, row3-graph, 分别表示图1中的第一行,第二行和第三行的图模数据。
@@T5S08500.GIF;图1@@
三、字模和图模数据的写入
1.可修改的字模表
EGA配有的显示存储器分成4个独立区段,称为4个页面。在文本方式下页面0和页面1分放屏幕字符的ASCII码和属性字节,而页面2则用来存放字模表。EGA的字模表本来是存储在ROM中的,但当每次初始化文本方式时,EGA的BIOS会把字模表拷贝到显示存储器的页面2中,由于字模表已移到RAM中,用户程序就能够对字模进行存取和修改了。
2.字模表的结构
EGA的字符宽度固定为8个像素,字符高度允许从1到32范围取值,字模表是根据不间的字符集分块存储的,每个字符集内则按字符的ASCII码值从小到大的顺序排列。每个字符固定占有32B,分别对应字模从上到下的32个扫描行。但并非所有的扫描行全部使用,视不同的显示模式使用其中一部分扫描行。
因此,16×16点阵的汉字字模占用2个西文字符,而图形实现则视情况占用若干个西文字符。
3.字模的装入
字模和图模数据的写入可通过BIOS INT 10H子功能11h来实现。
输入参数:AH=11H
AL=0
ES: BP=字模数据地址
CX=装入字符个数(1~256)
DX=起始字符(0~255)
BL=字符集序号(0~3)
BH=字符高度(1~32)
其中,字模数据地址是程序中的字模数据区的首地址。而起始字符是字模数据写入显示缓冲区开始的位置。
四、汉字及图形的彩色显示
1.西文字符的显示原理
输出文本时,页面0存入要输出字符的ASCII码值,页面1存入字符属性。由页面0的ASCII码值索引到页面2的字符发生器,再结合页面1的属性便可在屏幕上显示相应的字符,如图2所示
@@T5S08501.GIF;图2@@
2.汉字及图形的显示
利用西文字符的显示原理,使得字模未修改前应显示的西文字符显示成修改后的汉字字模或图模,通过使用被修改过的数个西文字符字模,显示汉字或图形。
3.显示输出
BIOS INT10的子功能13H完成字符的输出。
输入参数:AH=13H
AL=1
BL=字符属性
CX=显示字符个数
DH=显示字符的行号
DL=显示字符的列号
ES: BP=显示字符串的首地址
其中,显示字符串的开始字符由用户在页面0的ASCII码空间内可以任意取值,字符属性可以
设定显示的颜色。实现程序见程序2。
程序1
#include "stdio.h"
#include "fcntl.h"
unsigned char *f="天骄";
int fp;
main()
{
unsigned int i,c1,c2,t=0;
int i1,i2,i3;
long L;
unsigned char buf[32];
fp=open("g:\wps\cclibj.dot",O-RDWR|O-BINARY);
if(fp==-1){cputs("error on open cclib !");
exit(0);}
while ((i=*f++)!=0)
{
if(i>0xa0)
if(t==0)
{
c1=(i-0xa0)*94;
t++;}
else
{
c2=i-0xa0+c1-659;
t=0;
l=c2*32L;
lseek(fp,l,SEEK-SET);
read(fp,buf,32);
printf("hex code:\n");
for (i=0;i<32;i++)
if(i==16){printf("%\n",buf[i]);}
else printf("%x",buf[i]);
printf("\n");
getch();
};
}
}

本论文共2页,当前在第1页  1  2  

论文首页】【设为主页】【字体: 加入收藏】【打印本文】【回到顶部
 
上篇文章: VGA色彩编辑技术  下篇文章: Linux下的GTK图形界面编程
网站首页 - 友情链接 - 网站地图 - 加入收藏

声明:中国论文网毕业论文资料来源于网络,如有侵犯您的权益,请立即告知,我们将删除!
联系方式: E-mail:Laozhanga@QQ.COM QQ:75931341
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
冀ICP备07000828号