Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vyrovnávací paměť obrazovky je dvojrozměrné pole znaků a barevných dat pro výstup v okně konzoly. Konzola může mít více vyrovnávacích pamětí obrazovky. Aktivní vyrovnávací paměť obrazovky je ta, která se zobrazuje na obrazovce.
Systém vytvoří vyrovnávací paměť obrazovky pokaždé, když vytvoří novou konzolu. Pokud chcete otevřít popisovač pro aktivní vyrovnávací paměť obrazovky konzoly, zadejte hodnotu CONOUT$ ve volání funkce CreateFile . Proces může použít funkci CreateConsoleScreenBuffer k vytvoření dalších vyrovnávacích pamětí obrazovky pro svou konzolu. Nová vyrovnávací paměť obrazovky není aktivní, dokud nebude jeho popisovač zadán ve volání Funkce SetConsoleActiveScreenBuffer . Vyrovnávací paměti obrazovky se ale dají přistupovat ke čtení a zápisu bez ohledu na to, jestli jsou aktivní nebo neaktivní.
Každá vyrovnávací paměť obrazovky má vlastní dvojrozměrné pole záznamů informací znaků. Data pro každý znak jsou uložena v CHAR_INFO struktuře , která určuje znak Unicode nebo ANSI a barvy popředí a pozadí, ve kterých je tento znak zobrazen.
Pro každou vyrovnávací paměť obrazovky lze nezávisle nastavit řadu vlastností přidružených k vyrovnávací paměti obrazovky. To znamená, že změna aktivní vyrovnávací paměti obrazovky může mít výrazný vliv na vzhled okna konzoly. Mezi vlastnosti přidružené k vyrovnávací paměti obrazovky patří:
- Velikost vyrovnávací paměti obrazovky v řádcích a sloupcích znaků
- Atributy textu (popředí a barvy pozadí pro zobrazení textu, který se má zapsat funkcí WriteFile nebo WriteConsole ).
- Velikost a umístění okna (obdélníková oblast vyrovnávací paměti obrazovky konzoly zobrazená v okně konzoly).
- Umístění, vzhled a viditelnost kurzoru
- Výstupní režimy (ENABLE_PROCESSED_OUTPUT a ENABLE_WRAP_AT_EOL_OUTPUT). Další informace o režimech výstupu konzoly naleznete v tématu High-Level Režimy konzoly.
Při vytvoření vyrovnávací paměti obrazovky obsahuje mezery na každé pozici. Kurzor je viditelný a umístěný na počátku vyrovnávací paměti (0,0) a okno se umístí do levého horního rohu v počátku vyrovnávací paměti. Velikost vyrovnávací paměti obrazovky konzoly, velikost okna, atributy textu a vzhled kurzoru jsou určeny uživatelem nebo výchozím nastavením systému. Chcete-li načíst aktuální hodnoty různých vlastností přidružených ke vyrovnávací paměti obrazovky konzoly, použijte funkce GetConsoleScreenBufferInfo, GetConsoleCursorInfo a GetConsoleMode .
Aplikace, které změní některou z vlastností vyrovnávací paměti obrazovky konzoly, by měly buď vytvořit vlastní vyrovnávací paměť obrazovky, nebo uložit stav zděděné vyrovnávací paměti obrazovky při spuštění a obnovit ji při ukončení. Toto chování spolupráce se vyžaduje, aby změny neměly vliv na jiné aplikace sdílející stejnou relaci konzoly.
Tip
Pokud je to možné, doporučuje se místo vytvoření druhé vyrovnávací paměti pro tento účel použít alternativní režim vyrovnávací paměti . Alternativní režim vyrovnávací paměti nabízí zvýšenou kompatibilitu mezi vzdálenými zařízeními a s jinými platformami. Další informace najdete v naší diskuzi o klasických rozhraních API konzoly a virtuálním terminálu .
Vzhled a umístění kurzoru
Kurzor vyrovnávací paměti obrazovky může být viditelný nebo skrytý. Když je vidět, jeho vzhled se může lišit v rozsahu od úplné vyplnění buňky znaku, aby se zobrazila jako vodorovná čára v dolní části buňky. Chcete-li načíst informace o vzhledu a viditelnosti kurzoru, použijte funkci GetConsoleCursorInfo . Tato funkce hlásí, zda je kurzor viditelný a popisuje vzhled kurzoru jako procento buňky znaku, kterou vyplní. Pokud chcete nastavit vzhled a viditelnost kurzoru, použijte funkci SetConsoleCursorInfo .
Znaky napsané funkcemi vstupně-výstupních operací konzoly jsou napsány v aktuálním umístění kurzoru a posunují kurzor na další místo. Chcete-li určit aktuální pozici kurzoru v souřadnicovém systému vyrovnávací paměti obrazovky, použijte GetConsoleScreenBufferInfo. Pomocí SetConsoleCursorPosition můžete nastavit pozici kurzoru a tím řídit umístění textu, který je napsaný nebo ozvěna funkcemi vstupně-výstupních operací vysoké úrovně. Pokud kurzor přesunete, text v novém umístění kurzoru se přepíše.
Poznámka:
Použití funkcí nízké úrovně k nalezení pozice kurzoru se nedoporučuje. K dotazování na tuto pozici v případě potřeby pro pokročilá rozložení se doporučuje použít sekvence virtuálních terminálů . Další informace o preferování posloupností virtuálních terminálů najdete v klasických funkcích a v dokumentu virtuálního terminálu .
Pozice, vzhled a viditelnost kurzoru jsou pro každou vyrovnávací paměť obrazovky nastaveny nezávisle.
Atributy znaků
Atributy znaků lze rozdělit do dvou tříd: barva a dbCS. Následující atributy jsou definovány v WinCon.h souboru hlavičky.
| Vlastnost | Význam |
|---|---|
| FOREGROUND_BLUE | Barva textu obsahuje modrou. |
| FOREGROUND_GREEN | Barva textu obsahuje zelenou barvu. |
| FOREGROUND_RED | Barva textu obsahuje červenou barvu. |
| FOREGROUND_INTENSITY | Barva textu je zesílena. |
| BACKGROUND_BLUE | Barva pozadí obsahuje modrou barvu. |
| BACKGROUND_GREEN | Barva pozadí obsahuje zelenou barvu. |
| BACKGROUND_RED | Barva pozadí obsahuje červenou barvu. |
| BACKGROUND_INTENSITY | Barva pozadí je zesílena. |
| COMMON_LVB_LEADING_BYTE | Úvodní bajt. |
| COMMON_LVB_TRAILING_BYTE | Koncové bajty. |
| COMMON_LVB_GRID_HORIZONTAL | Vodorovně nahoře. |
| COMMON_LVB_GRID_LVERTICAL | Levý svislý. |
| COMMON_LVB_GRID_RVERTICAL | Pravý svislý. |
| COMMON_LVB_REVERSE_VIDEO | Obrácení atributů popředí a pozadí |
| COMMON_LVB_UNDERSCORE | Podtrhnout. |
Atributy popředí určují barvu textu. Atributy pozadí určují barvu použitou k vyplnění pozadí buňky. Ostatní atributy se používají se službou DBCS.
Aplikace může kombinovat konstanty popředí a pozadí, aby bylo možné dosáhnout různých barev. Například následující kombinace vede k jasnému azurovém textu na modrém pozadí.
FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE
Pokud není zadána žádná konstanta pozadí, pozadí je černé a pokud není zadána žádná konstanta popředí, text je černý. Například následující kombinace vytvoří černý text na bílém pozadí. Pro pozadí se zadává červená, zelená a modrá, která kombinuje s bílým pozadím. Pro popředí nejsou zadány žádné barvy příznaku, takže je černá.
BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED
Každá buňka vyrovnávací paměti obrazovky ukládá atributy barev pro barvy použité při kreslení popředí (textu) a pozadí této buňky. Aplikace může pro každou buňku znaku nastavit barevná data jednotlivě a ukládat data do členu atributůCHAR_INFO struktury pro každou buňku. Aktuální textové atributy každé vyrovnávací paměti obrazovky se používají pro znaky následně napsané nebo ozvěny funkcemi vysoké úrovně.
Aplikace může použít GetConsoleScreenBufferInfo k určení aktuální textové atributy vyrovnávací paměti obrazovky a SetConsoleTextAttribute funkce nastavit atributy znaků. Změna atributů vyrovnávací paměti obrazovky nemá vliv na zobrazení znaků, které byly zapsány dříve. Tyto textové atributy nemají vliv na znaky napsané vstupně-výstupními funkcemi konzoly nízké úrovně (například WriteConsoleOutput nebo WriteConsoleOutputCharacter ), které buď explicitně určují atributy pro každou buňku, která je zapsána, nebo ponechat atributy beze změny.
Poznámka:
Použití funkcí nízké úrovně k manipulaci s výchozími a konkrétními textovými atributy se nedoporučuje. K nastavení atributů textu se doporučuje použít sekvence virtuálních terminálů . Další informace o preferování posloupností virtuálních terminálů najdete v klasických funkcích a v dokumentu virtuálního terminálu .
Atributy písma
Funkce GetCurrentConsoleFont načte informace o aktuálním písmu konzoly. Informace uložené ve struktuře CONSOLE_FONT_INFO zahrnují šířku a výšku každého znaku písma.
Funkce GetConsoleFontSize načte velikost písma používaného zadanou vyrovnávací pamětí obrazovky konzoly.
Poznámka:
Použití funkcí k vyhledání a manipulaci s informacemi o písmu se nedoporučuje. Doporučuje se provozovat aplikace příkazového řádku neutrálním způsobem, aby se zajistila kompatibilita mezi platformami a také kompatibilita s hostitelskými prostředími, která uživateli umožňují přizpůsobit písmo. Další informace o uživatelských předvolbách a hostitelských prostředích, včetně terminálů, najdete v přehledu ekosystému.