Opis funkcji biblioteki newconio
_cinit()
Funkcja inicjuje bibliotekę newconio oraz ustawia
odpowiednio konsolę znakową do pracy z programem. Funkcję tą wywołujemy
tylko jeden raz w programie użytkownika - na samym początku funkcji main():
main()
{
_cinit();
...
}
_pl(tekst)
Konsola znakowa pracuje w innym standardzie znaków niż środowisko graficzne
Windows, w którym przygotowujemy teksty programów C++.
Konsekwencją tego faktu jest to, iż teksty zawierające polskie literki będą
nieprawidłowo wyświetlone przez konsolę. Problem rozwiązuje funkcja _pl().
Zamienia ona kody znaków reprezentujących polskie literki w standardzie
Windows na odpowiednie kody tych znaków w konsoli
znakowej. Użycie jest następujące:
...
cout
<< _pl("Zażółć gęślą jaźń\n");
...
center(nr wiersza, tekst)
Procedura wyświetla podany tekst na środku zadanego wiersza ekranu. Nadaje
się głównie do tytułów.
clrscr()
Funkcja czyści ekran konsoli znakowej. Ustawia pozycję kursora na początku
pierwszego wiersza. Na całym ekranie ustawiane są bieżące atrybuty kolorów.
cursoroff()
Jeśli tworzymy na ekranie konsoli jakąś animację, to często denerwuje nas
kursor tekstowy. Za pomocą tej funkcji możemy go wyłączyć - tzn. kursor
tekstowy stanie się niewidoczny.
cursoron()
Po wykonaniu tej funkcji kursor staje się znów widoczny.
delay(czas w milisekundach)
Funkcja wstrzymuje wykonanie programu na zadaną liczbę milisekund. Jest
przydatna, gdy chcemy zsynchronizować czasowo wykonanie programu.
Odmierzanie czasu jest przybliżone i nie należy raczej tworzyć np. zegara na
podstawie tej funkcji. Ale w pozostałych przypadkach jest bardzo pożyteczna.
delay(1000); // czeka około 1 sekundę
delay(500); // czeka około 1/2 sekundy, itd.
fillrectattr(atrybut, xb, yb, xe, ye)
Funkcja wypełnia zadany obszar okna konsoli (od pozycji
(xb,yb) w lewym górnym narożniku, do pozycji (xe,ye) w prawym dolnym
narożniku)
podanym atrybutem. Znaki zawarte w tym obszarze nie są zmieniane. Również nie
zmienia się pozycja kursora tekstowego.
fillrectattr(0x2f,1,1,78,23); // prostokąt z ciemnozielonym tłem i białymi
znakami
fillrectch(znak xb, yb, xe, ye)
Funkcja wypełnia zadany obszar okna konsoli (od pozycji
(xb,yb) w lewym górnym narożniku, do pozycji (xe,ye) w prawym dolnym
narożniku)
podanym znakiem. Kolory zawarte w tym obszarze nie są zmieniane. Również nie
zmienia się pozycja kursora tekstowego.
fillrectch('X',1,1,78,23); // prostokąt wypełniony literkami X
fillrect(znak, atrybut, xb, yb, xe, ye)
Funkcja wypełnia zadany obszar okna konsoli (od pozycji
(xb,yb) w lewym górnym narożniku, do pozycji (xe,ye) w prawym dolnym
narożniku)
podanym znakiem i atrybutem. Nie zmienia się pozycja kursora tekstowego.
fillrect('X',0x2f,1,1,78,23); // prostokąt wypełniony literkami białymi X na
ciemnozielonym tle.
frame(rodzaj, atrybut, xb, yb, xe, ye)
Na obrzeżach zadanego obszaru okna konsoli (od pozycji
(xb,yb) w lewym górnym narożniku, do pozycji (xe,ye) w prawym dolnym
narożniku)
rysowana jest ramka. Nie zmienia się pozycja kursora tekstowego. Rodzaje ramek
są następujące:
FRAME_EMPTY |
- ramka wypełniona spacjami |
FRAME_SINGLE |
- ramka zbudowana z pojedynczej linii |
FRAME_DOUBLE |
- ramka zbudowana z linii podwójnej |
FRAME_SOLID |
- ramka wypełniona znakiem pełnym |
FRAME_SHADED |
- ramka wypełniona znakiem cieniowanym |
fillframe(rodzaj, atrybut, xb, yb, xe, ye)
Na obrzeżach zadanego obszaru okna konsoli (od pozycji
(xb,yb) w lewym górnym narożniku, do pozycji (xe,ye) w prawym dolnym
narożniku)
rysowana jest ramka. Dodatkowo wnętrze obszaru zostaje wypełnione spacjami i
atrybutem koloru. Nie zmienia się pozycja kursora tekstowego. Rodzaje ramek
są takie same jak dla funkcji frame().
fullscreen(tryb)
Funkcja włącza tryb pełnoekranowy dla parametru tryb = true lub tryb pracy
w oknie dla tryb = false. W trybie pełnoekranowym okno konsoli posiada 50
wierszy po 80 kolumn w każdym. Ekran nie może być przewijany. W trybie
okienkowym liczba kolumn wynosi 80, lecz liczba wierszy może zależeć od
ustawionego rozmiaru okna. Treść okna konsoli może być przewijana.
...
fullscreen(true); // włączenie trybu pełnoekranowego
...
fulscreen(false); // powrót do trybu okienkowego
...
getattrxy(x, y)
Funkcja odczytuje atrybut koloru z pozycji x,y ekranu konsoli.
getch()
Funkcja odczytuje klawisz naciśnięty na klawiaturze. Jeśli klawisz nie
został naciśnięty, funkcja oczekuje na niego. Nadaje się zatem np. do
wstrzymywania pracy programu aż do reakcji użytkownika.
Jeśli naciśnięto klawisz sterujący (np. klawisze kursora,
F1..F12, PgUp, PgDn), to pierwsze wywołanie tej funkcji zwraca 0.
Dopiero drugie wywołanie zwraca tzw. kod matrycowy klawisza sterującego.
Kody matrycowe znajdziemy w kodzie programu przy definicji tablicy kbdtab[].
...
while(!getch()) ; // oczekiwanie na dowolny klawisz.
...
getchxy(x, y)
Funkcja odczytuje kod ASCII znaku umieszczonego na pozycji x,y ekranu
konsoli.
getrect(xb, yb, xe, ye)
Funkcja rezerwuje bufor dla zdefiniowanego w parametrach obszaru okna
konsoli i umieszcza w tym buforze zawartość obszaru, po czym adres
(wskaźnik) bufora jest zwracany jako wynik (jeśli wynikiem
jest NULL, to obszar został błędnie zdefiniowany lub jest poza oknem
konsoli). Funkcja ta została zaprojektowana do chwilowego
przechowania fragmentu ekranu konsoli, na którym wyświetlono coś innego
(np. komunikat). Funkcja współpracuje z funkcją putrect(), która
odtwarza z bufora poprzednio zapamiętany obszar.
WORD
* bufor;
...
if(!(bufor = getrect(10,10,69,14))
{
... // robimy coś na obszarze 10,10 \ 69,14, np, wyświetlamy
ostrzeżenie
putrect(bufor); // odtwarzamy obszar i zwalniamy pamięć bufora
}
gotoxy(x,y)
Funkcja umieszcza kursor na pozycji x,y okna konsoli. Pierwszy zapis do
okna rozpocznie się od tej pozycji.
...
gotoxy(37,12); cout << "HELLO";
...
highvideo()
Funkcja rozjaśnia kolor tekstu (o ile nie jest
rozjaśniony), który zostanie po niej wypisany w oknie konsoli.
...
cout << _pl("Naciśnij klawisz ");
highvideo(); cout << "ENTER"; lowvideo();
cout << _pl(", aby zakończyć działanie programu...");
...
kbhit()
Funkcja sprawdza, czy na klawiaturze został naciśnięty jakiś klawisz. Jeśli
tak, zwraca true. Inaczej zwraca false.
...
while(!kbhit())
{
...
}
...
lowvideo()
Funkcja przyciemnia kolor tekstu (o ile nie jest przyciemniony), który
zostanie po niej wypisany w oknie konsoli.
...
cout << _pl("Naciśnij klawisz ");
highvideo(); cout << "ENTER"; lowvideo();
cout << _pl(", aby zakończyć działanie programu...");
...
putattrxy(atrybut, x, y)
Funkcja wprowadza atrybut koloru na pozycję x,y ekranu konsoli. Kolor znaku
na tej pozycji oraz jego tła zostaną odpowiednio zmienione.
putchxy(znak, x, y)
Funkcja umieszcza znak na pozycji x,y ekranu konsoli. Atrybut tej pozycji
nie jest zmieniany.
putrect(bufor)
Funkcja odtwarza obszar konsoli zapamiętany wcześniej za pomocą funkcji
getrect(). Użyty do tego celu bufor jest po wykonaniu operacji zwalniany.
putxy(znak, atrybut, x, y)
Funkcja umieszcza podany znak oraz atrybut koloru na pozycji x,y ekranu
konsoli.
scrollrect(kierunek, odległość, xb, yb, xe,
ye)
Funkcja przesuwa treść obszaru zawartego w prostokącie od (xb,yb) do
(xe,ye) w podanym kierunku i na zadaną odległość. Treść okna konsoli poza
zdefiniowanym obszarem nie ulega zmianie. Po przesunięciu treści obszaru
powstaje puste miejsce. Zostanie ono wypełnione spacjami w bieżącym kolorze
tła i tekstu. Dozwolone kierunki przesuwu są następujące:
SCROLL_UP |
- przesuw w górę |
SCROLL_RIGHT |
- przesuw w prawo |
SCROLL_DOWN |
- przesuw w dół |
SCROLL_LEFT |
- przesuw w lewo |
textattr(atrybut)
Funkcja ustawia bieżący atrybut koloru. Po jej wywołaniu znaki wypisywane
na konsoli będą posiadały kolory tekstu i tła zgodne z podanym atrybutem.
textbackground(kolor)
Funkcja ustawia kolor tła znaków. Kody kolorów (0...16) podaliśmy w tabelce
na początku rozdziału. Zamiast wartości liczbowych można również stosować
odpowiednie stałe, np. BLACK, YELLOW, WHITE itp. Po wywołaniu tej funkcji
znaki zapisywane do konsoli będą posiadały zadany kolor tła.
textcolor(kolor)
Funkcja ustawia kolor znaków. Kody kolorów (0...16) podaliśmy w
tabelce na początku rozdziału. Zamiast wartości liczbowych można również
stosować odpowiednie stałe, np. BLACK, YELLOW, WHITE itp. Po wywołaniu tej
funkcji znaki zapisywane do konsoli będą posiadały zadany kolor.
wherex()
Funkcja odczytuje numer kolumny ekranu konsoli zawierającej
kursor.
wherey()
Funkcja odczytuje numer wiersza ekranu konsoli zawierającego
kursor.
|