频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

C语言程序设计(第9章 实用编程技巧)01

来源: 作者: 出处:巧巧读书 2006-10-11 进入讨论组
访问地址 http://www.qqread.com/cpp/p224237.html9.1 图形应用技巧
    9.1.1 显示适配器类型的自动测试
        开发图形软件的基本方法
    9.1.2 屏幕图像的存取技巧
    9.1.3 屏幕显示格式的控制方法
    9.1.4 使图形软件脱离BGI的方法
    9.1.5 拷贝屏幕图形的方法
    9.1.6 随意改变VGA显示器显示颜色的技巧

 

9.1 图形应用技巧
9.1.1 显示适配器类型的自动测试
    目前PC机及兼容机的显示器及其适配器的类型非常多,有单色的,也有彩色的。这些显示器及适配器的模式对应用程序来说是非常重要的。如何在程序中自动识别显示器的模式,以便更好地使用当前的显示模式是每个微机应用程序开发者的一个重要课题。下面程序可以方便测出当前显示器适配器的模式(有关具体知识,请参见其它相关的技术书籍)。

[例9-1] 测试显示适配器类型。
#include<stdio.h>
#include<graphics.h>
#define P(note)  printf(note)
#define PV(format,value)  printf(format ,v a l u e )
#define PM  printf("mode is ")
#define PD  printf("\n\tdetected graphics drive is")
void main( )
{
    int gdrive,gerror,gmode;
    detectgraph(&gdrive,&gmode); /* 标准测试函数*/
    if(gdrive<0)
    {
        P("No graphics hardware detected !\n");
        return;
    }
    switch (gdrive)
    {
        case 1: PD;
        P("CGA");
        switch(gmode)
        { 
            case 0 :
            PM;
            P("CGAC0 320×200");
            break;
        case 1:
            PM;
            P("CGAC1 320×200");
            break;
        case 2:
            PM;
            P("CGAC2 320×200");
            break;
        case 3: PM; P("CGAC3 640×200"); break;
        case 4: PM; P("CGAh4 320×200"); break;
    }
    break;
    case 2: PD;
        P("MCGA");
        switch(gmode)
        { 
            case 0: PM; P("MCGAC0 320×200"); break;
            case 1: PM; P("MCGAC1 320×200"); break;
            case 2: PM; P("MCGAC2 320×200"); break;
            case 3: PM; P("MCGAC3 320×200"); break;
            case 4: PM; P("MCGAC4 620×200"); break;
            case 5: PM; P("MCGAC5 620×480"); break;
        }
    break;
    case 3: PD;
        P("EGA");
        switch(gmode)
        {
            case 0 :PM;
                P("EGALO 640×200");
                break;
            case 1:PM;
                P("EGALO 640×350");
                break;
        }
        break;
    case 4:PD;
        P("EGA64");
        switch(gmode)
        {
            case 0:PM;
                P("EGA64LO 640×200");
                break;
            case 1: PM;
                P("EGA64HI 640×350");
                break;
        }
        break;
    case 5:PD;
        P("EGAMONO");
        PM;
        P("EGAMONO 640×350");
        break;
    case 6:PD;
        P("IMB8614");
        switch(gmode)
        {
            case 0:PM;
                P("IMB8514LO 640×480");
                break;
            case 1: PM;
                P("IMB8514HI 1024×768");
                break;
        }
        break;
    case 7:PD;
        P("HERCMONO");
        PM;
        P("HERCMONO 720×348");
        break;
    case 8:PD;
        P("ATT400");
        switch(gmode)
        {
            case 0: PM;
                P("ATT400C0 320×200");
                break;
         & 更多文章 更多内容请看Office技巧专区网管实用技巧100例ADO.NET实用技巧专题,或进入讨论组讨论。

收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章