荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: pigthree (祝我幸福), 信区: Program
标  题: Turbo C作图(二)
发信站: 荔园晨风BBS站 (2005年06月09日23:25:56 星期四), 站内信件

            图形系统的初始化


    在编制图形程序的时候,进入图形方式前,首先要在程序
中对使用的图形系统进行初始化,即要用什么样的图形显示器
的驱动程序,采用什么模式的图形方式,以及该适配器驱动程
序的寻找路径。所用的显示适配器一定要支持所选用的显示模
式否则将出错。Turbo C提供了一个图形系统初始化函数
initgraph()可以完成这些功能。

initgraph函数的原型如下:

    void far initgraph(int far * driver, int far * mode,
                       char far path_for_driver);

    当我们使用的存储模式为tiny、small或者medium时,不需
要远指针,因而可以将初始化函数调用格式写成如下形式:

    int gdriver=DETECT , gmode;

    initgraph(&gdriver, &gmode, "");

    其中驱动程序目录路径为“”时,表示驱动程序(如
EGAVGA.BGI驱动程序)就在当前的目录下,参数graphmode可以
用下面的数据来说明。例如检查到的gdriver为VGA,它对应的
gmode就有:
      gmode         分辨率
        1           640×200
        2           640×350
        3           640×480

    当我们不知道所用的显示器适配器的时候,可以将gdriver
设置成DETECT,它将自动检测所用显示适配器类型,并将相应的
驱动程序装入,并将其最高的显示模式作为当前的显示模式。
    一旦执行了初始化,显示其即被设置成相应的图形方式。下
面是某图形的开始部分,它包括对图形系统的初始化:

    #include <graphics.h>

    int main()
    {
        int gdriver = DETECT, gmode;

        initgraph(&gdriver, &gmode, "");

        /*  图形程序主体 */

        closegraph();

        return 0;
    }

    上面初始化过程中,将由DETECT检查所用适配其类型,并将当
前目录下相应的驱动程序装入,并采用最高分辨率的显示模式作为
gmode的值。如检查到的是VGA适配器,则gmode等于4。
    当然,如果已经知道所用适配器为VGA,想采用640×480的分辨
率显示模式,则图形初始化部分可以写成:

    #include <graphics.h>

    int main()
    {
        int gdriver = VGA;
        int gmode   = 4;

        initgraph(&gdriver, &gmode, "");
        /*  图形程序主体 */

        closegraph();
        return 0;
    }
其中参数“”表示驱动程序就在当前目录下。
--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.32.166]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店