C語言程序設(shè)計(第9章實用編程技巧)

字號:

9.1 圖形應(yīng)用技巧
    9.1.1 顯示適配器類型的自動測試
     目前PC機(jī)及兼容機(jī)的顯示器及其適配器的類型非常多,有單色的,也有彩色的。這些顯示器及適配器的模式對應(yīng)用程序來說是非常重要的。如何在程序中自動識別顯示器的模式,以便更好地使用當(dāng)前的顯示模式是每個微機(jī)應(yīng)用程序開發(fā)者的一個重要課題。下面程序可以方便測出當(dāng)前顯示器適配器的模式(有關(guān)具體知識,請參見其它相關(guān)的技術(shù)書籍)。
    [例9-1] 測試顯示適配器類型。
    #include
    #include
    #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); /* 標(biāo)準(zhǔn)測試函數(shù)*/
     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;
     }