Metode evoluate de programare Limbajele c şi C++


Setarea ecranului în mod text



Yüklə 1,64 Mb.
səhifə28/44
tarix07.04.2018
ölçüsü1,64 Mb.
#46828
1   ...   24   25   26   27   28   29   30   31   ...   44

12.1. Setarea ecranului în mod text

Setarea (punerea) se realizează cu ajutorul funcţiei textmode care are prototipul:


void textmode (int modtext);

unde


modtext poate fi exprimat numeric sau simbolic în felul următor:
Modul text activat Constantă simbolică Valoare
alb/negru 40 coloane BW40 0

color 40 coloane C40 1

alb/negru 80 coloane BW80 2

color 80 coloane C80 3

monocrom MONO 7

color 43 linii pentru EGA

şi 50 linii pentru VGA C4350 64

modul precedent LASTMODE -1

Modul MONO se poate seta pe un adaptor monocolor. Celelalte moduri se pot seta pe adaptoare color.

12.2. Definirea unei ferestre

Dacă dorim să partajăm ecranul în zone care să poată fi gestionate independent trebuie să definim ferestre.

O fereastră este o zonă dreptunghilară de pe ecran care se poate defini cu funcţia window al cărei prototip este:

void window (int stanga, int sus, int dreapta, int jos);


unde:

-(stanga, sus) = coordonatele colţului din stânga al ferestrei;

-(dreapta, jos) = coordonatele colţului din dreapta jos.
La un moment dat o singură fereastră este activă şi anume aceea definită de ultimul apel al funcţiei window. Funcţiile de gestionare a ecranului în mod text acţionează întotdeauna asupra ferestrei active. După setarea modului text cu ajutorul funcţiei textmode este activ tot ecranul.

Menţionăm că funcţia window nu are nici un efect dacă parametrii de la apel sunt eronaţi.



12.3. Ştergerea unei ferestre


Fereastra activă se poate şterge cu ajutorul funcţiei clrscr cu prototipul:


void clrscr(void);

  1. fereastra activă (sau tot ecranul) devine activă; fondul are culoarea definită prin culoarea de fond curentă;

  2. clrscr poziţionează cursorul în poziţia (1,1) a fiecărei ferestre.


12.4. Gestiunea cursorului

Programatorul poate plasa cursorul pe un caracter al ferestrei folosind funcţia gotoxy al cărei prototip este:


void gotoxy (int coloana, int linie);

unde:


  1. (coloana, linie) sunt coordonate relative la fereastra activă, dacă sunt înafara ferestrei active apelul este ignorat;

Poziţia cursorului se poate determina cu ajutorul funcţiilor wherex şi wherey care au prototipurile:


int wherex (void); -returnează numărul coloanei în care se află cursorul

int wherey (void); -returnează numărul liniei în care se află cursorul.


Există cazuri când se doreşte ascunderea cursorului. Acest lucru se poate realiza printr-o secvenţă specială în care se utilizează funcţia geninterrupt.
void ascundcursor (void) // face invizibil cursorul

{ _AH = 1;

_CH = 0x20;

geninterrupt (0x10);

}
Cursorul poate fi reafişat apelând funcţia următoare:

void afiscursor (void) // face vizibil cursorul

{ _AH = 1;

_CH = 6;


_CL = 7;

geinterrupt (0x10);

}


  1. AH, CH, CL reprezintă unii din regiştrii microprocesorului.


12.5. Determinarea parametrilor ecranului

Utilizatorul are posibilitatea să obţină parametrii curenţi ai ecranului prin apelarea funcţiei gettextinfo al cărui prototip este:


void gettextinfo (struct text_info *p);
unde structura text_info este definită în fişierul conio.h astfel:
struct text_info

{ unsigned char winleft; // amplasarea colturilor ferestrei

unsigned char wintop;

unsigned char winright;

unsigned char winbottom;

unsigned char attribute; // culoarea fondului, a caracterelor si

unsigned char normattr; // clipirea

unsigned char currmode;

unsigned char screenheight; // dimensiunea ecranului

unsigned char screenwidth;

unsigned char curx; // pozitia cursorului

unsigned char cury;

};


12.6. Modurile video alb/negru

Există două moduri (intens şi normal) care se pot activa cu funcţiile highvideo şi lowvideo ale căror prototipuri sunt:


void highvideo (void);

void lowvideo (void);


Intensitatea iniţială este de obicei cea normală. Se poate reveni la intensitatea normală dacă se apelează funcţia normvideo cu acelaşi prototip ca al celorlalte două funcţii.
Exemplu:

Vom scrie un program care afişează parametrii ecranului:


#include

#include


void main (void)

{ struct text_info par_ecran;

gettextinfo (&par_ecran);

printf (“\nstanga: %u sus: %u dreapta: %u jos: %u\n”,

par_ecran.winleft,

par_ecran.wintop,

par_ecran.winright,

par_ecran.winbottom);

printf (“atribut: %d mod curent: %d\n”,

par_ecran.normattr, par_ecran.currmode);

printf (“inaltimea ecranului: %d latimea ecrnului: %d\n”,

par_ecran.screenheight, par_ecran.screenwidth);

printf (“coloana cursorului: %d linia cursorului: %d\n”,

par_ecran.curx, par_ecran.cury);


}

12.7. Setarea culorilor

Culoarea fondului se setează cu ajutorul funcţiei textbackground cu prototipul următor:

void textbackground (int culoare);

unde:


  1. culoare este un întreg cuprins între 0 şi 7 cu semnificaţia din tabelul anterior al culorilor.

Culoarea caracterelor se setează cu ajutorul funcţiei textcolor cu prototipul următor:

void textattr (int culoare);

unde:


  1. culoare este un întreg între 0 şi 15.

Se pot seta ambele culori, precum şi clipirea caracterului folosind funcţia textattr de prototip:

void textattr (int atribut);

unde:


  1. atribut e definit cu ajutorul relaţiei (*) de la începutul lecţiei.



Yüklə 1,64 Mb.

Dostları ilə paylaş:
1   ...   24   25   26   27   28   29   30   31   ...   44




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin