C语言图形界面的编程

1.编写图形程序时用致电的一些图形库函数抣在graphics.lib中,扏行这些函数时,所需 的有关信息(如宏定义等 )则
    包含在graphics.h头文件中。
2.我们日常在电视屏幕上显示的画面,其实均由一些圆点组成(其亮度,顔色不同),这些点称为像素(或像点),
    它们是组成图形的最小单位。
3。插在PC机插槽中的图形卡(即适配器),其作用就是将要显示的字符和图形以数字形式存储在上的显示存储器(VRAM) 中,再将其变成视频模拟信号送往相应适配的显示器机配有的显示器种类不同,因而适配器种类不同
4,VGA:视频图形阵列适器:
     VGA是目前流行的PC机显示标准 ,它支持CGA,EGA的所有显示方式,但自已还有640*480像素的16色显示方式 , 640*350像素的中分辨率显示方式和640*200像素的低分辨显示方式,它们均有16种显示顏色可供选择。
5.CVGA:是国内研制的带有显示 汉字功能的VGA图形适配器,带有汉字字库,该适配器提供了和CGA,EGA,VGA
       全兼容 的工作方式,还担供了在文本工作方式下的高分辨率图形显示功能。
6.显示器有两种工作方式,即文本显示和图形显示。它们的区别是显示 存储器中的存储的信息不同。字符方式时, VRAM
   存放要显示字符的ASCII 码,用它作为地址,取出字符发生器ROM中存放的相应字符的图像(又称字模),变成视频信号在显示 器上进行显示;而当选择图形方式时,则要显示的图形的图像直接存在VRAM中中,VRAM中某地址单元存放的数就表示了相应屏莫上某行和某列上的像素及顔色
7.对EGA显示 器,调色板即16个调色板寄存器是一个顔色索引表,它存有16种顔色,VRAM中的每个像素值(是4位)实际
        代表一个顔色索引号该值即上述函有选举权的参数index可知道选中哪个调色板寄存器,而每个调色板寄存器为6
        位,故可用6位二进制数表示一个顔色,因而可有64种顔色供选择。该顔色值即是上述参数octual_color,
8.对于VGA显示 器,也只有一个调色板,对应16个调色板寄存器。但这些寄存器装的内容和EGA的不同,它们装的又是一个
        顔色寄存器表的索引,而这些颜色寄存器才存有显示的颜色,它们字长为18位,因而可选256K种颜色,共有256个
        颜色寄存器,因而可一次显示256种颜色。VGA的调色板寄存器是6位,而要寻址256个颜色寄存器需有8位。它是这样寻址的,即还要通过一个所谓模式控制寄存器的最高位决定,若为0(对于640*480*16色显示是这样,),则低6位由调色板寄存器给出,高两位由颜色选择寄存器给出,从而组合出8位地址码。因此它的像素显示过程是:由VRAM提供调色板寄存器给出,再由栓索到的调色板寄存器的内容同颜色选择寄存器配合,栓索到颜色寄存器,再由颜色寄存器存的颜色值而令显示器显示,当模式寄存器最暠位为1时,则调色板寄 存器给出低4位的4位地址码,而由颜色选择寄存器给出高4位的4位地址码,来组合成8位地址码,对颜色寄存器寻址得出颜色值。

9.存储在显示适配器上的显示存储器(VRAM)中的一满屏图像信息称为一页,每个页一般为64KB,VRAM可以存储要显示的图像好几页(VRAM )
   容量而定,最大可达8 页。TURBOC只支持4页。编辑页和显示页都 可设定 。
10.setbdcolor设置背景色时,对整个屏幕作用,它不能只改变图视口内 的背景,在用setcolor设置 前景色时,它对图视口内起作用。若下
   一次设置 的图视口没有设置 颜色,那么上次在另一图视口设置的颜色在本次设置的图视口内起作用。
11.动画技术:
           (1)动态开辟图视口(2)显示页与编辑页交替变化。(3)画面存储再重放(用getimage,putimage)(4)直接对图像动态存储器
        进行操作的方法:即得用显示适配器上控制图像显示的各种寄 文化部碞和显示存储器(VRAM),对其进行直接作和控制,从而可以高
        效快速的实现动画效果。
12.固定式菜单:程序运行一开始就出现在屏幕上的一种菜单,它公存在一次,或始终停留在画面上,或功能选择完成后就消失了。
   弹出式菜单:仅用在一级深度的选择中,即在该菜单中选中某菜单后,无需再时行第二次选择。无子菜单项。
   下拉式菜单:选择后还要再进行选择。几个下拉式菜单可以同时出现在屏幕上。
13.菜单窗口的设计:
        1.菜单窗口图像的存储和重放
        2.菜单窗口和菜单项的生成
        3.光条的生成
        4.键识别
        5.菜单的连接
        6.功能执行。
14.设置VGA12H模式(640*480):
              _AH=00H;   _AL=0x12;     geninteupt(0x10);
    恢复VGA的字符显示模式03H:
                    _AH=00H;   _AL=0X03H;  geninteupt(0x10);

posted @ 2007-12-29 15:50  中土  阅读(23066)  评论(1编辑  收藏  举报
©2005-2008 Suprasoft Inc., All right reserved.