国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C語言圖形編程(一、字符屏幕)

2019-11-17 05:41:25
字體:
來源:轉載
供稿:網友
 一、屏幕操作函數
     1. clrscr()清除字符窗口函數
     2. window()字符窗口函數
     3. gotoxy()光標定位函數
     4. clreol() 清除光標行尾字符函數
     5. insline() 插入空行函數
     6. delline() 刪除一行函數
     7. gettext() 拷進文字函數
     8. puttext() 拷出文字函數
     9. movetext() 移動文字函數
 二、字符屬性函數
    10. textmode() 文本模式函數  
    11. highvideo()高亮度函數 
    12. lowvideo() 低亮度函數
    13. normvideo(void);
    14. textcolor() 文本顏色函數
    15. textattr() 文本屬性函數
    16.textbackground() 文本背景函數
三、 屏顯狀態函數
    17. wherex() 光標處x坐標函數
    18. wherey() 光標處y坐標函數
    19. gettextinfo() 獲取文本窗口信息函數




    在Borland C++里面提供了字符屏幕和圖形函數。字符屏幕的核心是窗口(Window),它是屏幕的活動部分,字符輸出或顯示在活動窗口中進行。窗口在缺省時,就是整個屏幕。窗口可以根據需要指定其大小。同樣,對圖形函數的操作,也提供了(Viewport)。也就是說圖形函數的操作都是在視口上進行。圖形視口與字符窗口具有相同的特性,用戶可以在屏幕上定義大小不同的視口,若不定義視口大小,它就是整個屏幕。
    窗口是在字符屏幕下的概念,只有字符才能在窗口中顯示出來,這時用戶可以訪問的最小單位為一個字符。視口是在圖形屏幕狀態下的概念,文本與圖形都可以在視口上顯示,用戶可訪問的最小單位是一個像素(像素這一術語最初用來指顯示器上最小的、單獨的發光點單元。然而現在,其含義拓寬為指圖形顯示器上的最小可訪問點)。
    字符和圖外形態下,屏幕上的位置都是由它們的行與列所決定的。有一點須指出:字符狀態左上角坐標為(1,1),但圖形左上角坐標為(0,0)。
    了解字符屏幕和圖形函數與窗口和視口的關系是很重要的。例如,字符屏幕 光標位置函數gotoxy()將光標移到窗口的x,y位置上,這未必是相對于整個屏幕。下面介紹常用的幾類字符屏幕函數的功能用途、操作方法及其例行程序。

一、屏幕操作函數
    編寫程序繪圖經常要用到對字符屏幕進行操作。例如,在往屏幕上寫字符之前,首先要將屏幕清除干凈。又如,有時需要在屏幕上多處寫上肉中刺樣的字符內容,這時最好用屏幕拷貝來高效率地完成這一任務。對這些操作,Borland C++提供了一系列字符屏幕操作函數來實現。

1. clrscr()清除字符窗口函數
功能:函數clrscr()清除整個當前字符窗口,并且把光標定位于左上角(1,1)處。
用法:此函數調用方式為 void clrscr(void);
說明:括號中void 表示無參數。
      該函數相應的頭文件為conio.h
返回值:無
例:使用這個函數的例子見4.clreol()函數的實例中。

2. window()字符窗口函數
功能: 函數window()用于在指定位置建立一個字符窗口。
用法: 此函數調用方式為 void window(int left,int top,int right,int bottom);
說明: 函數中參數left,top為窗口左上角坐標;right,bottom為其右下角坐標。
       若有一個坐標是無效的,則window()函數不起作用。一旦該函數調用成功,那么所有定位坐標都是相對于窗口的,而不是相對于整個屏幕。但是建立窗口所用的坐標總是相對整個屏幕的絕對坐標,而不是相對當前窗口的相對坐標。這樣用戶就可以根據各種需要建立多個互不嵌套的窗口。
       此函數的頭文件為conio.h。
返回值:無
例: 調用這個函數的實現例見3.gotoxy()函數的例子中。

3. gotoxy()光標定位函數
功能: 函數gotoxy()將字屏幕上的光標移到當前窗口指定的位置上。
用法: 這個函數調用方式為void gotoxy(int x,int y);
說明: 括號里x,y是, 光標定位的坐標,假如其中一個坐標值無效(如坐標超界),那么光標不會移動。
       此函數在字符狀態(有時稱為文本狀態)下經常用到 ,其相應的頭文件為conio.h
返回值:無
例: 下面程序建立兩個窗口,然后在窗口里顯示字符,字符的位置是調用該函數確定的。
#include"conio.h>
void border(int startx,int starty,int endx,int endy)
{
   register int i;
   gotoxy(1,1);
   for(i=0;i<=endx-startx;i++)
      putch('-');
   gotoxy(1,endy-starty);
   for(i=0;i<=endx-startx;i++)
      putch('-');
   for(i=2;i<=endy-starty;i++){
      gotoxy(1,i);
      putch('1');
      gotoxy(endx-startx+1,i);
      putch('1');
   }
}

main()
{
   void border(int,int,int,int);
   clrscr();
   window(6,8,38,12);
   border(6,8,38,12);
   gotoxy(2,2);
      window(8,16,40,24);
   border(8,16,40,24);
   gotoxy(3,2);
   printf("window 2");
   getch();
}

4. clreol() 清除光標行尾字符函數
功能: 函數clreol()在當前字符窗口中清除從光標位置到行尾的所有字符,而光標位置保持不變。
用法: 它的調用方式為void clreol(void);
說明: 此函數的相應頭文件為 conio.h
返回值:無
例: 程序中使用了函數clreol()和clrscr()
#include "conio.h>
void main()
{
   register int i;
   gotoxy(6,8);
   printf("This is a test of the clreol() function.");
   getch();
   gotoxy(6,8);
   clreol();
   for(i=0;i<20;i++)
      printf("Hello/n");
   getch();
   clrscr();
}

5. insline() 插入空行函數
功能: 函數insline()插入一空行到當前光標所在行上,同時光標以下的所有行都向下順移一行。
用法: 此函數的調用方式為void insline(void);
說明: 該函數只用于文本方式,并且在當了符窗口才有效。
       這個函數的對應頭文件是 conio.h
返回值:無
例: 程序給出了insline()函數的用法。
#include "conio.h"
void main()
{
   registser int i;
   clrscr();
   for(i=1;i<24;i++)
   {
      gotoxy(1,i);
      printf("This is line %d/n",i);
   }
   getch();
   gotoxy(1,10);
   insline();
   getch();
}

6. delline() 刪除一行函數
功能: 函數delline()刪除當前窗口內光標所在行,同時把該行下面 所有行都上移一行。
用法: 此函數調用方式為 void delline(void);
說明: 注重,假如當前窗口小于整個屏幕,那么該函數只影響到窗口內的字符。
       這個函數相應的頭部文件是conio.h
返回值: 無
例:先在屏幕上顯示16行文字,然后刪除第4行
#include "conio.h"
void main()
{
   register int i;
   clrscr();
   for(i=0;i<16;i++) printf("line %d/n",i);
   getch();
   gotoxy(1,4);
   delline();
   getch();
}

7.gettext() 拷進文字函數
功能: 函數gettext()用于文本狀態下將屏幕上矩形域


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 七台河市| 江门市| 鱼台县| 宜城市| 筠连县| 新营市| 曲周县| 德庆县| 丹阳市| 西畴县| 闸北区| 连江县| 迭部县| 托克逊县| 永清县| 孝义市| 文水县| 修武县| 建阳市| 武安市| 怀远县| 健康| 太康县| 彩票| 兴隆县| 休宁县| 鸡东县| 瑞昌市| 驻马店市| 老河口市| 梓潼县| 比如县| 台湾省| 西安市| 红原县| 东丽区| 运城市| 阿拉善盟| 莆田市| 开化县| 驻马店市|